PHP在活动时不读取RSS文件,但在本地时读取效果良好
我的本地服务器可以很好地读取RSS,但当我上传它时,我发现以下错误:PHP在活动时不读取RSS文件,但在本地时读取效果良好,php,rss,Php,Rss,我的本地服务器可以很好地读取RSS,但当我上传它时,我发现以下错误: Warning: fopen(http://webservice.weatherzone.com.au/rss/wx.php?u=13145<=aploc&lc=6439&fc=1) [function.fopen]: failed to open stream: HTTP request failed! in /var/www/vhosts/---------------------- on li
Warning: fopen(http://webservice.weatherzone.com.au/rss/wx.php?u=13145<=aploc&lc=6439&fc=1) [function.fopen]: failed to open stream: HTTP request failed! in /var/www/vhosts/---------------------- on line 105
Error reading RSS data.
我无法将URL发布到该站点,因为我仍在处理它,这是一个安全问题。我无法修改php.ini文件
这是它被称为的代码:
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
**$fp = fopen("http://webservice.weatherzone.com.au/rss/wx.php?u=13145<=aploc&lc=6439&fc=1","r")
or die("Error reading RSS data.");**
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
可能
allow\u url\u fopen
已禁用。请使用ini\u get()
或phpinfo()
检查我想到的第一件事-您的PHP.ini文件中是否启用了allow\u url\u fopen
?如果没有,则需要启用该选项,以便使用带有fopen()函数的URL
即使设置正确,您也可能希望使用curl
函数来降低对ini设置的依赖性。不要使用fopen()从Web读取文件
如果已安装,请尝试使用cURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch); // xml-code in $content
curl_close($ch);
我不知道这是否是个问题,但如果您想对所有内容保密,可能需要删除警告中的文件位置!根据phpinfo:allow_url_fopen On On导致:致命错误:调用未定义的函数curl_init()phpinfo:curl curl curl支持启用的curl信息libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5
$content=file\u get_contents($url)
有效吗?警告:file_get_contents()[function.file get contents]:无法打开流:HTTP请求失败什么是var_转储($HTTP_响应_头)调用文件获取内容($url)
后编码>打印?HTTP状态码是否为200?