Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在活动时不读取RSS文件,但在本地时读取效果良好_Php_Rss - Fatal编程技术网

PHP在活动时不读取RSS文件,但在本地时读取效果良好

PHP在活动时不读取RSS文件,但在本地时读取效果良好,php,rss,Php,Rss,我的本地服务器可以很好地读取RSS,但当我上传它时,我发现以下错误: Warning: fopen(http://webservice.weatherzone.com.au/rss/wx.php?u=13145&lt=aploc&lc=6439&fc=1) [function.fopen]: failed to open stream: HTTP request failed! in /var/www/vhosts/---------------------- on li

我的本地服务器可以很好地读取RSS,但当我上传它时,我发现以下错误:

Warning: fopen(http://webservice.weatherzone.com.au/rss/wx.php?u=13145&lt=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&lt=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?