2017-03-07 49 views
-1

curl似乎不適用於我的本地項目。Curl不能與xampp和PHP 5.6一起使用

這個例子不爲我顯示任何內容:

<!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> 

我用在Windows 8的PHP 5.6 XAMPP。

我做的一切,使工作(一些已經完成):

  • 註釋掉擴展:php_curl.dll在php.ini文件

  • 註釋掉的extension_dir =「C:\ XAMPP \在php.ini PHP \分機「

  • 在C添加這些文件:/ XAMPP/PHP和-to在C sure-:/ WINDOWS/System32下:ssleay32.dll,libssh2.dll,的libeay32.dll

  • php_curl.dll位於c:/ XAMPP/PHP /分機

  • 確保路徑是否正確與完成:C:\ XAMPP \ PHP
  • 我重新啓動我的電腦,以確保一切正常初始化

我不明白爲什麼它仍然無法正常工作......任何想法pleaaaaase?

+0

此無關的捲曲度不工作。維基百科有一個301重定向到它的https網址,並且你在沒有'CURLOPT_FOLLOWLOCATION'標誌的情況下調用http URL。即使那樣,你可能仍然必須禁用'CURLOPT_SSL_VERIFYPEER'。 – nimmneun

回答

0

你必須使用這個curl_setopt($ ch,CURLOPT_FOLLOWLOCATION,true);因爲在您正在從http調用https協議的wiki頁面中存在重定向。這是你需要設置的唯一參數,它將起作用。

代碼變化

<!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

仍然無法正常工作...我不明白髮生了什麼... – Melody

+0

檢查錯誤日誌,即logs/error_log文件是否有任何異常。你得到什麼錯誤?添加這些語句以啓用調試。 curl_setopt($ curl,CURLOPT_VERBOSE,true); curl_setopt($ curl,CURLOPT_STDERR,$ out);參考這裏的示例:http://stackoverflow.com/questions/3475723/how-to-write-verbose-information-into-file – Senthil