file_get_contents适用于localhost但在服务器上超时

时间:2012-11-29 09:36:00

标签: php timeout 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

为什么?

2 个答案:

答案 0 :(得分:1)

首先,检查你的路径如此 echo $feed; // just for debug
然后检查内容
$content = @file_get_contents($feed);
最后,得到XML
if( $content ) { $feeds = new SimpleXmlElement( file_get_contents($feed) ); }

编辑:URL的file_get_contents仅在您有allow_url_fopen = 1时才有效。要获取http://www.businessweek.com/feeds/homepage.rss的内容,您需要一个获取内容的cURL函数。像http://davidwalsh.name/curl-download

这样的东西

答案 1 :(得分:-2)

我的问题本身就“固定”了,我想这是一个暂时的问题,不知道发生了什么,我接受了另一个答案,因为这是一个很好的做法。