2012-09-10 11 views
12

這個網站已經有好幾個月了,並且一直在正常工作。我有一個PHP頁面,它根據url中的數據創建發票(例如viewinvoice.php?id = 250根據記錄250構建發票)。這個頁面可以通過網絡瀏覽器訪問,並且工作正常。當試圖訪問本地文件時,會導致curl返回false?

在一個完全不同的頁面(即test.php),我試圖通過cURL來訪問該文件。然而,當我打電話和var_dump的結果,我得到布爾(假)。

下面是使捲曲呼叫功能:

function file_get_contents_curl($url) { 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 

$data = curl_exec($ch); 
curl_close($ch); 

return $data; 
} 

HOME是表示完整的URL(例如http://www.example.com/)的常數。

$invoice_contents = file_get_contents_curl(HOME.'viewinvoice.php?id=242'); 
echo $invoice_contents; 
var_dump($invoice_contents); 

我試圖改變URL外部URL(即http://www.google.com/)和頁面加載就好了。我得到谷歌的主頁。但是在同一個域中的任何頁面都不會加載。是否有這種情況發生的原因?

我不是服務器管理員,但我有根服務器的訪問權限。我最近沒有更改任何設置,但服務器管理員可能升級了apache或php的版本?

在任何情況下,是否有我可以修改的設置,使其再次工作?

P.S.我只是嘗試從外部服務器(不同的域)進行確切的調用,它工作得很好。

回答

36

您的捲曲執行後,把這樣的事情:

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

您會看到您捲曲執行中有什麼失敗。

更多信息:curl_getinfocurl_errnocurl_error

+1

我添加了這行,並能看到更多的有關請求。我一定會在將來使用這種方法。不幸的是,在我嘗試這個之前,問題就解決了,所以沒有錯誤出現。該網站恢復了以前的工作狀態。我從來沒有想過我會說我希望它仍然被打破,但因爲我不知道哪裏出了問題......我希望它是。如果它再次發生,我一定會使用這個信息。 – codescribblr

2

執行後把這個變量只是curl_close($ CH)之前測試你的錯誤

echo "<pre>"; 
var_dump(curl_getinfo($ch)) . '<br/>'; 
echo curl_errno($ch) . '<br/>'; 
echo curl_error($ch) . '<br/>'; 
相關問題