$fp = fopen("http://feeds.reuters.com/Reuters/PoliticsNews?format=xml","r")
or die("Error reading RSS data.");
以上编码在localhost中正常工作;;;
但在服务器显示中“读取RSS数据时出错。”......
我不知道为什么......
任何人请解释我......
我在等......
感谢
答案 0 :(得分:2)
可能的原因可能是allow_url_fopen
可能被禁用(引用):
此选项启用URL感知 fopen包装器,允许访问 URL对象,如文件。
您可以使用phpinfo()
功能进行检查,看看它是否已启用。
如果未启用,则必须使用其他解决方案来发送获取该远程内容的HTTP请求。
例如,使用curl可能是一种解决方案;请参阅curl_exec
以获取快速示例,并curl_setopt
查看所有可能选项的列表。
这是一个简单的请求,但是:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://feeds.reuters.com/Reuters/PoliticsNews?format=xml");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$feed = curl_exec($ch);
curl_close($ch);
这将为您提供$feed
中Feed的内容 - 但请查看curl_setopt
的手册页:有很多选项可以通过列表不是一个坏主意。
不过,作为预防措施,在采用这种方式之前,您可能需要检查是否启用了curl,是phpinfo()
的输出...
答案 1 :(得分:2)
尝试确保在服务器上启用allow_url_fopen
。如果不是,则对fopen的调用将失败。
答案 2 :(得分:0)
很可能服务器已配置so that fopen() can not open a remote URL。您可能希望尝试使用Simplepie来解析Feed,但它会消除它的痛苦。
答案 3 :(得分:0)
垃圾谈论“可能的原因”而不是一个单一的建议如何得到一个真正的理由。
ini_set('display_errors',1);
error_reporting(E_ALL);
在脚本的顶部,看看出了什么问题。