2011-01-05 40 views
9

我有下面的PHP代碼:本地主機URL工作在瀏覽器,但返回布爾(假)爲PHP curl_exec

$curl = curl_init(); 
curl_setopt ($curl, CURLOPT_URL, $URL); 
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true); 
$html = curl_exec ($curl); 

echo $html; 

蒙山以下結果:

和這即使瀏覽器可以顯示http://localhost/index.html沒有問題。 我正在本地主機上運行一個xampp apache服務器。我想不出什麼問題。任何幫助將非常感激。

+0

你是否已經定義好從你的本地主機運行這段代碼? – fire 2011-01-05 14:02:10

+0

@fire是的,我在本地主機上運行代碼。 – tucson 2011-01-05 14:09:30

+0

嘗試'127.0.0.1'而不是'localhost'。如果可行,這是一個DNS問題。如果它不起作用,還有其他一些可能的事情。嘗試通過設置['CURLOPT_HEADER'](http://us2.php。)來檢查CURL標頭。net/curl_setopt)選項...此外,設置'CURLOPT_FAILONERROR'爲false檢查... – ircmaxell 2011-01-05 14:15:54

回答

4

你應該確保你的Apache在正確的接口上偵聽。我曾經在Vist機器上遇到這個問題:Apache(XAMP)只在IPv4上偵聽,但在Vista上,「localhost」默認解析爲IPv6地址。

要禁用IPv6地址,請編輯您%system32%\ drivers \ etc \ hosts文件並刪除:: 1行。

0

cURL可能會在後臺將請求轉換爲IPv6。除了xrstf建議的解決方案之外,您可能只需嘗試使用127.0.0.1而不是localhost來強制IPv4連接。

0

一個可能的事情是防火牆問題。默認情況下,捲曲會嘗試使用端口1080,而該端口可能未在本地主機/路由器/ ISP上打開。

如果它不是一個問題,那麼你的捲髮執行後試試,把這樣的事情:

echo curl_getinfo($ch) . '<br/>'; 
echo curl_errno($ch) . '<br/>'; 
echo curl_error($ch) . '<br/>'; 

您會看到您捲曲執行中有什麼失敗。 更多信息:curl_getinfocurl_errnocurl_error

0

嘗試使用

if(curl_exec($ch) === false) 
{ 
    echo 'Curl error: ' . curl_error($ch); 
} 
else 
{ 
    echo 'Operation completed without any errors'; 
} 
// (see : www.php.net/curl_error) 

要看到發生了什麼,希望這有助於

0

這可能是:

IPV6的問題,捲曲:

捲曲配置爲: 啓用c-ares 已啓用ipv6 本地系統已禁用ipv6。請檢查這個。

您還可以共享主機文件以獲取更多詳細信息。

相關問題