我正在使用simplexml_load_file()
来抓取RSS Feed的内容:
$rss = simplexml_load_file('http://www.iolproperty.co.za/roller/news/feed/entries/rss');
这在我的本地服务器上按预期工作,但在部署到我的客户端的生产服务器时静默失败,返回空结果。
phpinfo()
函数表示启用了SimpleXML支持,似乎我可以访问远程文件(cURL函数工作正常)。我也试过加载不同的RSS源。同样,它们在本地工作但在部署时返回空。
答案 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才能使其正常工作。