我试图在使用PHP 5.4的数字海洋主机上使用以下代码阅读RSS提要:
<?php
libxml_use_internal_errors(true);
$rss = simplexml_load_file('http://www.filmfare.com/feeds/feeds-news.xml');
echo 'RSS '.$rss;
foreach (libxml_get_errors() as $error) {
// handle errors here
var_dump($error);
}
libxml_clear_errors();
?>
代码只是返回
RSS object(LibXMLError)#2 (6) { ["level"]=> int(1) ["code"]=> int(1549) ["column"]=> int(0) ["message"]=> string(78) "failed to load external entity "http://www.filmfare.com/feeds/feeds-news.xml" " ["file"]=> string(0) "" ["line"]=> int(0) } bool(false)
相同的代码,当我运行在一个Go Daddy主机与PHP 5.3,是返回完美的结果。
我已经检查过了,以下设置在两个主机的php.ini
中是相同的
allow_url_fopen=On
allow_url_include = Off
然后我也尝试了下面的CURL代码片段,
<?php
$source='http://www.filmfare.com/feeds/feeds-news.xml';
$rcUrlHandle = curl_init($source);
curl_setopt($rcUrlHandle,CURLOPT_RETURNTRANSFER,true);
$sData = curl_exec($rcUrlHandle);
if(curl_errno($rcUrlHandle))
{
echo 1;
print_r(curl_getinfo($rcUrlHandle));
curl_close($rcUrlHandle);
}
else
{
echo 2 ;
print_r($sData);
curl_close($rcUrlHandle);
}
?>
Digital Ocean仍然没有返回任何结果,而Go Daddy返回的结果非常好。任何想法?
allow_url_fopen On On
allow_url_include Off Off
发现DigitalOcean IP未被终端列入白名单。和他们一起启动了程序,几个小时后就能完成。谢谢所有人。