我正在使用以下代码来读取RSS源并输出结果.
function home_page_parser($feedURL) {
$rss = simplexml_load_file($feedURL);
$i = 0;
echo "<ul>";
foreach ($rss->channel->item as $feedItem) {
$i++;
$myDate = ($feedItem->pubDate);
$dateForm = explode(" ", $myDate);
echo "<li class=\"rss-feed\"><a href=\"$feedItem->link\" title=\"$feedItem->title\" target=\"_blank\">".$feedItem->title."</a><br />" .$feedItem->pubDate. "</li>";
if($i >= 3) break;
echo "</ul>";
}
}
Run Code Online (Sandbox Code Playgroud)
它在我的运行PHP 5.2的Rackspace Cloud测试站点上运行良好
在运行PHP 5.3的Media Temple的实际站点上,我收到以下错误:
警告:simplexml_load_file()[function.simplexml-load-file]:在第39行的/.../html/includes/functions.php中,allow_url_fopen = 0在服务器配置中禁用了http://包装器
警告:simplexml_load_file(
http://www.chinaknowledge.com/Newswires/RSS_News/RSS_News.xml)[function.simplexml-load-file]:无法打开流:在第39行的/.../html/includes/functions.php中找不到合适的包装器警告:simplexml_load_file()[function.simplexml-load-file]:I/O警告:未能
"http://www.chinaknowledge.com/Newswires/RSS_News/RSS_News.xml"在第39行的/.../html/includes/functions.php中加载外部实体警告:第44行的/.../html/includes/functions.php中为foreach()提供的参数无效
第39行是这样的:
$rss = simplexml_load_file($feedURL);
Run Code Online (Sandbox Code Playgroud)
我做错了什么或需要改变工作5.3?
这个错误非常具有描述性,你不觉得吗?
通过allow_url_fopen = 0在服务器配置中禁用http://包装器
您需要编辑PHP配置文件并更改配置allow_url_fopen.如果你不能直接这样做,请尝试ini_set()
编辑:正如@evanmcd在评论中指出的,这个配置只能在php.ini中设置.PHP文档参考.