2012-11-29 98 views
2

我有這樣的代碼:的file_get_contents工作在本地主機,但超時對服務器

$feed = 'urltorss'; 
$feeds = new SimpleXmlElement(file_get_contents($feed)); 


$feed = 'http://www.businessweek.com/feeds/homepage.rss'; 
$feeds = new SimpleXmlElement(file_get_contents($feed)); 

現在網址沒有需要編碼它們的網址任何特殊字符,但第二個網址具有.rss擴展如果它是相關的。

第一個調用起作用,當我嘗試在我的服務器上工作但在本地主機上完美工作時,第二個調用暫停。

這是我得到的錯誤:

Severity: Warning 

Message: file_get_contents('http://www.businessweek.com/feeds/homepage.rss') 
[function.file-get-contents]: 
failed to open stream: Connection timed out 

Filename: controllers/mailsystem.php 

Line Number: 36 

這是爲什麼?

+0

最有可能是由於您的PHP設置。嘗試將腳本超時設置爲更高的值。 – OptimusCrime

+0

超時是一個可靠的超時,並且在localhost中會非常快速地加載,如果第一個工作正常,這可能是如何設置的? –

+0

到底什麼時候完成?你的腳本或請求? –

回答

1

首先,檢查你的路徑,以便
echo $feed; // just for debug
然後檢查內容
$content = @file_get_contents($feed);
並在年底,拿到XML
if($content) { $feeds = new SimpleXmlElement(file_get_contents($feed)); }

編輯:爲網址的file_get_contents將只有當你有工作allow_url_fopen = 1.要獲取http://www.businessweek.com/feeds/homepage.rss的內容,您需要一個cURL函數來獲取內容。像http://davidwalsh.name/curl-download

+0

這與問題無關,我不想檢查是否發生錯誤,它不會被發現。 –

+0

這不是無關的......它是關於調試。關於「我不想檢查錯誤是否發生」......你是程序員嗎? :)因爲這是所有關於知道什麼是問題。無論如何,只有當您有allow_url_fopen = 1時,URL的file_get_contents纔會起作用。要獲得http://www.businessweek.com/feeds/homepage.rss的內容,您需要一個可以獲取內容的cURL函數。像http://davidwalsh.name/curl-download – vectorialpx

+0

我的意思是在這一點上,我不想這樣做......好,問題得到解決,我猜這是一個暫時的事情...... –

-2

我的問題得到「固定」本身,我想這是一個臨時問題不知道發生了什麼,我接受了其他答案,因爲這是一個很好的做法。

相關問題