2017-03-07 1 views
-1

Curl scheint nicht in meinen lokalen Projekten zu arbeiten.Curl funktioniert nicht mit Xampp und PHP 5.6

Dieses Beispiel nichts für mich an:

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Exemple d'utilisation de curl</title> 
</head> 

<body> 

<?php 
// Url de la page dont vous voulez récupérer le contenu (plus précisément : le code source) 
$url = 'http://fr.wikipedia.org/wiki/CURL'; 
// Initialise une session cURL 
$ch = curl_init(); 

// Défini quelques options 
// - Indique l'url auquel curl devra accéder 
curl_setopt($ch, CURLOPT_URL, $url); 
// - Retourne le contenu par la fonction curl_exec au lieu d'afficher directement le contenu récupéré 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
// - Défini un user-agent à envoyer au serveur. Vous pouvez par exemple envoyer un user-agent d'un téléphone Android, d'un iPhone, ... pour tenter de récupérer le contenu d'une version mobile d'un site web 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0'); 
// - Exécute la session cURL fournie et stocke le contenu récupéré dans la variable $resultat (grâce à l'option CURLOPT_RETURNTRANSFER) 
$resultat = curl_exec ($ch); 
// - Ferme une session cURL et donc la connexion au serveur distant 
curl_close($ch); 

// Affiche le contenu récupérer par curl 
echo $resultat; 

?> 


</body> 
</html> 

Ich benutze xampp auf Windows 8. Php 5.6.

tat ich alles, damit es funktioniert (einige bereits fertig waren):

  • uncommented Erweiterung: php_curl.dll in php.ini

  • uncommented extension_dir = "C: \ xampp \ php \ ext "in der php.ini

  • diese Dateien in c:/xampp/php und -zu sein Sure-in c:/windows/system32: ssleay32.dll, libssh2.dll, libeay32.dll

  • php_curl.dll ist in c:/xampp/php/ext

  • die PATH gewährleisten korrekt abgeschlossen mit: C: \ xampp \ php
  • ich meinen Computer neu starten, sicherzustellen, dass alles korrekt sein
initialisiert wurde

Ich verstehe nicht, warum es immer noch nicht funktioniert ... Irgendwelche Idee pleaaaaase?

+0

Das hat nichts mit Curl zu tun nicht funktioniert. Wikipedia hat eine 301-Weiterleitung zu seiner https-URL und Sie rufen die http-URL ohne das Flag "CURLOPT_FOLLOWLOCATION" auf. Auch dann müssen Sie wahrscheinlich noch 'CURLOPT_SSL_VERIFYPEER' deaktivieren. – nimmneun

Antwort

0

Sie müssen diese curl_setopt verwenden ($ ch, CURLOPT_FOLLOWLOCATION, true); weil es in der Wiki-Seite eine Umleitung gibt, die Sie von http zu https-Protokoll aufrufen. Dies ist der einzige Parameter, den Sie einstellen müssen, und es wird funktionieren.

Codeänderung

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Exemple d'utilisation de curl</title> 
</head> 

<body> 

<?php 
// Url de la page dont vous voulez récupérer le contenu (plus précisément : le code source) 
$url = 'http://fr.wikipedia.org/wiki/CURL'; 
// Initialise une session cURL 
$ch = curl_init(); 

// Défini quelques options 
// - Indique l'url auquel curl devra accéder 
curl_setopt($ch, CURLOPT_URL, $url); 
// - Retourne le contenu par la fonction curl_exec au lieu d'afficher directement le contenu récupéré 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

// - Défini un user-agent à envoyer au serveur. Vous pouvez par exemple envoyer un user-agent d'un téléphone Android, d'un iPhone, ... pour tenter de récupérer le contenu d'une version mobile d'un site web 
//curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0'); 
// - Exécute la session cURL fournie et stocke le contenu récupéré dans la variable $resultat (grâce à l'option CURLOPT_RETURNTRANSFER) 
$resultat = curl_exec ($ch); 
// - Ferme une session cURL et donc la connexion au serveur distant 
curl_close($ch); 

// Affiche le contenu récupérer par curl 
echo $resultat; 

?> 


</body> 
</html> 
+0

immer noch nicht funktioniert ... Ich verstehe nicht, was passiert ... – Melody

+0

check in das Fehlerprotokoll, das heißt, logs/error_log Datei für alle Ausnahmen. Welchen Fehler bekommst du? Fügen Sie diese Anweisungen hinzu, um das Debugging zu aktivieren. curl_setopt ($ curl, CURLOPT_VERBOSE, wahr); curl_setopt ($ curl, CURLOPT_STDERR, $ out); Ref hier für ein Beispiel: http://stackoverflow.com/questions/3475723/how-to-write-verbose-information-into-file – Senthil

Verwandte Themen