curl-Alternative zu file_get_contents?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • curl-Alternative zu file_get_contents?

    Hi.

    Ich benutze ein Skript (s.u.), das - seit mein Hoster "allow_url_fopen" auf "off" gesetzt hat - leider nicht mehr funktioniert. Ich hab gelesen, dass man in dem Fall "curl" benutzen kann, hab aber keine Ahnung was ich wie umschreiben soll. Wäre nett, wenn einer von euch das für mich machen könnte.

    Hier das Skript:

    PHP-Code:
    <?php

    include "includes/connect.php";

    $getitems="SELECT itemid,asin from phpbb_amazon";

    $getitems2=mysql_query($getitems) or die("Could not get items");

    while(
    $getitems3=mysql_fetch_array($getitems2))

    {

      
    $url="http://webservices.amazon.de/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$acckey&Operation=ItemLookup&ItemId=$getitems3[asin]&ResponseGroup=Medium,Offers&Condition=All&MerchantID=Amazon";

      
    $var=file_get_contents($url);

      
    $pricing=explode("EUR ",$var);

      
    $lastindex=sizeof($pricing)-1;

      
    $newprice=$pricing[$lastindex];

      
    $theprice=explode(",",$newprice);

      
    $deci=substr($theprice[1],0,2);

      
    $realprice="$theprice[0],$deci";

      print 
    "$realprice<br>";

      
    $updatecron="Update phpbb_amazon set price='$realprice' where itemid='$getitems3[itemid]'";

      
    mysql_query($updatecron) or die("Could not update cron");

      
    mysql_query("Delete from bgook");

    }

    ?>
    Danke!

  • #2
    Naja, wenigstens nen Ansatz könntest du ja schonmal posten.

    Sowohl im Manual curl

    Als auch über die SuMa deiner Wahl findest du diverse Beispiele.

    Kommentar


    • #3
      Brich deinen Code um!

      PHP-Code:
      function get_remote_file($url)
      {
          if (
      ini_get('allow_url_fopen')) {
              return 
      file_get_contents($url);
          }
          elseif (
      function_exists('curl_init')) {
              
      $c curl_init($url);
              
      curl_setopt($cCURLOPT_RETURNTRANSFER1);
              
      curl_setopt($cCURLOPT_HEADER0);
              
      $file curl_exec($c);
              
      curl_close($c);
              return 
      $file;
          }
          else {
              die(
      'Error');
          }

      Ungetestet.

      Kommentar


      • #4
        Wo muss ich das jetzt einfügen?

        Kommentar


        • #5
          Wenn du dein Problem wirklich ohne Grundkenntnisse oder einen Blick ins Manual lösen willst, dann gibt es nur einen Weg: Drücke Win+R, gib cmd ein, drücke Enter, gib format c: ein und drück nochmal Enter.


          Kommentar


          • #6
            OffTopic:
            Och onemorenerd, jetzt kommt er doch garnicht wieder. Sowas macht man doch nicht
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Oo besser nicht solche Scherze machen. Am Ende formatiert er noch tatsächlich seine Festplatte.
              Edit: Zum Glück kann man nicht die Festplatte formatieren, auf der grade das BS läuft - da hat er nochmal glück gehabt.

              Wo du das einfügen musst? Ja da, wo du es brauchst....
              Wird vermutlich in der Nähe von dem sein, was du ersetzen willst. -.-
              Zuletzt geändert von TheFish511; 25.05.2008, 19:22.
              Assembler ist eine Methode,
              Programme, die zu langsam laufen,
              so umzuschreiben,
              dass sie überhaupt nicht mehr laufen.

              Kommentar


              • #8
                Kein Plan, was ihr für ein Problem habt. Wenn ich auf netdoktor.de irgendwen um Rat bitte, dann werd ich auch nicht aufgefordert, 10 Semester Medizin nachzuholen.

                Kommentar


                • #9
                  Original geschrieben von TheFish511
                  Oo besser nicht solche Scherze machen. Am Ende formatiert er noch tatsächlich seine Festplatte.
                  Edit: Zum Glück kann man nicht die Festplatte formatieren, auf der grade das BS läuft - da hat er nochmal glück gehabt.

                  Wo du das einfügen musst? Ja da, wo du es brauchst....
                  Wird vermutlich in der Nähe von dem sein, was du ersetzen willst. -.-
                  OffTopic:
                  sag das nicht .. in XP nicht ... in den vorherigen OS schon
                  Gruß
                  Uzu

                  private Homepage

                  Kommentar


                  • #10
                    Original geschrieben von baerenwurm
                    Kein Plan, was ihr für ein Problem habt. Wenn ich auf netdoktor.de irgendwen um Rat bitte, dann werd ich auch nicht aufgefordert, 10 Semester Medizin nachzuholen.
                    Naja, man hat halt selten Lust einem anderen irgendwas einfach so zu schreiben.
                    (onemorenerd hat dir übrigens sogar ne Funktion geschrieben, die du nur aufrufen musst)
                    Wenn du willst, dass hier einer etwas für dich macht, dann geh ins Projekthilfe-Forum.... Dieser Abschnitt ist eher für "kleine" Hilfestellungen, also für Leute, die PHP lernen wollen.

                    sag das nicht .. in XP nicht ... in den vorherigen OS schon
                    Hmm, kann sein. Meine Zeit hat erst mit XP wirklich angefangen. (erster eigener Rechner )
                    Assembler ist eine Methode,
                    Programme, die zu langsam laufen,
                    so umzuschreiben,
                    dass sie überhaupt nicht mehr laufen.

                    Kommentar


                    • #11
                      Original geschrieben von baerenwurm
                      Kein Plan, was ihr für ein Problem habt. Wenn ich auf netdoktor.de irgendwen um Rat bitte, dann werd ich auch nicht aufgefordert, 10 Semester Medizin nachzuholen.
                      Blöder Vergleich. Jeder halbwegs gescheite Mensch wird übers Internet nur solche medizinischen Ratschläge geben, deren Befolgung keine oder zumindest vertretbare gesundheitliche Konsequenzen hat. Alles andere wäre grob fahrlässig!
                      Kein Arzt wird dir in einem Forum sagen "schneiden sie mal hier ein wenig, fummeln sie mal da und schlucken sie das, dann ist ihr AIDS weg". Aber von uns verlangst du das. Hast selbst keine Ahnung, musst also alles glauben. Wir kennen aber deine Applikation und Umgebung nicht. Wir können dir nur Hilfe zur Selbsthilfe geben. Alles andere wäre grob fahrlässig. (Dein Provider wird schon einen Grund für allow_url_fopen = no haben.)

                      Im Moment ist es so, als hättest du bei netdoctor was gefragt, man hätte dir eine Salbe empfohlen und nun willst du wissen wie man den Deckel abschraubt.
                      Wer den Deckel nicht abschraubt, wird kaum wissen wie man die Salbe appliziert. Ich würde dir nicht helfen, weil ich befürchten müsste, du würdest die Salbe schlucken.

                      Und jetzt lies mal ein ordentliches Einsteigertutorial (peterkropff.de) oder lass es sein mit dem Programmieren. Is ja hier kein Kindergeburtstag ...

                      Kommentar


                      • #12
                        Original geschrieben von onemorenerd
                        Brich deinen Code um!

                        PHP-Code:
                        function get_remote_file($url)
                        {
                            if (
                        ini_get('allow_url_fopen')) {
                                return 
                        file_get_contents($url);
                            }
                            elseif (
                        function_exists('curl_init')) {
                                
                        $c curl_init($url);
                                
                        curl_setopt($cCURLOPT_RETURNTRANSFER1);
                                
                        curl_setopt($cCURLOPT_HEADER0);
                                
                        $file curl_exec($c);
                                
                        curl_close($c);
                                return 
                        $file;
                            }
                            else {
                                die(
                        'Error');
                            }

                        Ungetestet.
                        Funktioniert - vielen Dank!
                        Zuletzt geändert von baerenwurm; 26.05.2008, 13:14.

                        Kommentar


                        • #13
                          Na siehste, man muss nur ein bisschen am Deckel drehen ...

                          Kommentar


                          • #14
                            K, war in der Tat nicht so schwierig...

                            Kommentar

                            Lädt...
                            X