2016-12-10 6 views
0

Ich versuche zu lernen, wie PHP cURL zu verwenden, und ich bin ein tutorial und während der Verwendung von Wamp folgen. Ich werde auf localhost und ich nie das Ergebnis der Code nicht sehen die Änderungen egal ich, alles, was ich sehe, ist:PHP cURL Code wird nicht funktionieren

some of my php code

Dies ist mein Code:

<html> 
<head> 
</head> 
<body> 
<?php 

    function curl($url){ 

     $options = Array(
      CURLOPT_RETURNTRANSFER => TRUE, 
      CURLOPT_FOLLOWLOCATION => TRUE, 
      CURLOPT_AUTOREFERER => TRUE, 
      CURLOPT_CONNECTTIMEOUT => 120, 
      CURLOPT_TIMEOUT => 120, 
      CURLOPT_MAXREDIRS => 10, 
      CURLOPT_USERAGENT => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8", 
      CURLOPT_URL => $url, 
     $ch = curl_init(); 
     curl_setopt_array($ch, $options); 
     $data = curl_exec($ch); 
     curl_close($ch); 
     return $data; 
    } 

    function scrape_between($data, $start, $end){ 
     $data= stristr($data, $start); 
     $data= substr($data, strlen($start)); 
     $stop= stripos($data, $end); 
     $data= substr($data, 0, $stop); 
     return $data; 
    } 

    $scraped_page = curl("http://www.imdb.com"); // Downloading IMDB home page to variable $scraped_page 
    $scraped_data = scrape_between($scraped_page, "<title>", "</title>"); // Scraping downloaded dara in $scraped_page for content between <title> and </title> tags 

    echo $scraped_data; // Echoing $scraped data, should show "The Internet Movie Database (IMDb)" 

    ?> 
    </body> 
    </html> 
+0

Willkommen bei SO. Bitte posten Sie den relevanten Text des Fehlers in Ihrem Post und nicht in einem Link. –

+0

Es tut mir leid, aber es ist ein Chaos, also habe ich ein Bild hochgeladen, sollte ich es als Code setzen, obwohl es nicht oder einfach kopieren/einfügen? @THeron – evans

+0

Es scheint, dass der PHP-Code nicht als PHP-Code verarbeitet wird - ist die Dateiendung '.php'? Wenn dies der Fall ist, müssen Sie sicherstellen, dass der Webserver (zB Apache, IIS usw. PHP-Dateien mit der ausführbaren PHP-Datei verarbeitet ... –

Antwort

0

Sie verfehlten ')‘in Zeile 18 (CURLOPT_URL => $url,)

starten

<html> 
<head> 
</head> 
<body> 
<?php 

    function curl($url){ 

     $options = Array(
      CURLOPT_RETURNTRANSFER => TRUE, 
      CURLOPT_FOLLOWLOCATION => TRUE, 
      CURLOPT_AUTOREFERER => TRUE, 
      CURLOPT_CONNECTTIMEOUT => 120, 
      CURLOPT_TIMEOUT => 120, 
      CURLOPT_MAXREDIRS => 10, 
      CURLOPT_USERAGENT => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8", 
      CURLOPT_URL => $url); 
     $ch = curl_init(); 
     curl_setopt_array($ch, $options); 
     $data = curl_exec($ch); 
     curl_close($ch); 
     return $data; 
    } 

    function scrape_between($data, $start, $end){ 
     $data= stristr($data, $start); 
     $data= substr($data, strlen($start)); 
     $stop= stripos($data, $end); 
     $data= substr($data, 0, $stop); 
     return $data; 
    } 

    $scraped_page = curl("http://www.imdb.com"); // Downloading IMDB home page to variable $scraped_page 
    $scraped_data = scrape_between($scraped_page, "<title>", "</title>"); // Scraping downloaded dara in $scraped_page for content between <title> and </title> tags 

    echo $scraped_data; // Echoing $scraped data, should show "The Internet Movie Database (IMDb)" 

    ?> 
    </body> 
    </html> 
2

Ändern Sie die Dateierweiterung in PHP, nicht in HTML (d. H. Mache es zu Ende in .php). Zu zitieren @John Conde von this answer:

Sie können nicht PHP in HTML-Dateien ausgeführt werden, da der Server nicht erkennt, dass als gültige PHP-Erweiterung, wenn Sie es sagen.

So können Sie den Webserver (z. B. Apache, IIS usw.) ändern, um Dateien mit der HTML-Erweiterung als PHP-Dateien zu verarbeiten.

Stellen Sie außerdem sicher, dass die Zuweisung des Optionsarrays mit einer schließenden Klammer endet, die mit einem Semikolon abgeschlossen ist. Weitere Informationen zu Arrays finden Sie unter php.net/array. Also diese Zeile:

$options = Array(
     CURLOPT_RETURNTRANSFER => TRUE, 
     CURLOPT_FOLLOWLOCATION => TRUE, 
     CURLOPT_AUTOREFERER => TRUE, 
     CURLOPT_CONNECTTIMEOUT => 120, 
     CURLOPT_TIMEOUT => 120, 
     CURLOPT_MAXREDIRS => 10, 
     CURLOPT_USERAGENT => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8", 
     CURLOPT_URL => $url, 

soll aktualisiert werden:

$options = Array(
     CURLOPT_RETURNTRANSFER => TRUE, 
     CURLOPT_FOLLOWLOCATION => TRUE, 
     CURLOPT_AUTOREFERER => TRUE, 
     CURLOPT_CONNECTTIMEOUT => 120, 
     CURLOPT_TIMEOUT => 120, 
     CURLOPT_MAXREDIRS => 10, 
     CURLOPT_USERAGENT => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8", 
     CURLOPT_URL => $url 
); 

Sie können sehen, diese Arbeit an this phpfiddle

+0

Hey Mann, es funktioniert Dank! Ich war so müde, dass ich nicht erkannte, dass es die Klammern und Semikolon fehlte, aber warum es nicht mit .html funktioniert ? Ich dachte, du kannst PHP-Code in HTML-Dateien haben – evans

+0

Siehe meine aktualisierte Erklärung (mit einem Link zu [dieser Antwort] (http://stackoverflow.com/a/11312349/1575353)) –