什么php / server设置可能阻止simplexml_load_file()工作?

时间:2012-12-05 09:20:22

标签: php simplexml

我正在使用simplexml_load_file()来抓取RSS Feed的内容:

$rss = simplexml_load_file('http://www.iolproperty.co.za/roller/news/feed/entries/rss');

这在我的本地服务器上按预期工作,但在部署到我的客户端的生产服务器时静默失败,返回空结果。

phpinfo()函数表示启用了SimpleXML支持,似乎我可以访问远程文件(cURL函数工作正常)。我也试过加载不同的RSS源。同样,它们在本地工作但在部署时返回空。

3 个答案:

答案 0 :(得分:5)

如果要加载外部文件,

simplexml_load_file需要在allow_url_fopen中启用php.ini指令。卷曲函数不需要此指令,因此它适用于您。

答案 1 :(得分:1)

生产服务器可能会阻止传出的互联网请求以防止滥用。另一个原因可能是其配置中不包含不同的PHP版本或某些mod。使用错误报告查看错误消息

error_reporting(E_ALL);

// UPDATE

您还可以检查是否从服务器返回值

$c = implode('', file('http://www.iolproperty.co.za/roller/news/feed/entries/rss'));
print $c;
$rss = simplexml_load_string($c);

并检查其他人的说法,检查是否启用了allow_url_fopen选项

答案 2 :(得分:1)

您必须设置allow_url_fopen option才能使其正常工作。