Migration 代码在PHP5.3.2中工作。在PHP5.2.17中,获取为foreach()提供的无效参数
我正在使用以下代码:-Migration 代码在PHP5.3.2中工作。在PHP5.2.17中,获取为foreach()提供的无效参数,migration,installation,php,Migration,Installation,Php,我正在使用以下代码:- <?php // Load and parse the XML document $rss = simplexml_load_file('http://partners.userland.com/nytRss/nytHomepage.xml'); $title = $rss->channel->title; ?> <html xml:lang="en" lang="en"> <head> <title>
<?php // Load and parse the XML document
$rss = simplexml_load_file('http://partners.userland.com/nytRss/nytHomepage.xml');
$title = $rss->channel->title;
?>
<html xml:lang="en" lang="en">
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<h1><?php echo $title; ?></h1>
<?php
// Here we'll put a loop to include each item's title and description
foreach ($rss->channel->item as $item) {
echo "<h2><a href='" . $item->link . "'>" . $item->title . "</a></h2>";
echo "<p>" . $item->description . "</p>";
}
?>
</body>
</html>
我从这个网站www.ibm.com/developerworks/library/x-simplexml.html上获得了它
我有一个令人费解的问题
当我在我的开发服务器上运行代码时,它可以正常工作
在我的web主机服务器上运行时,我会收到以下错误报告:-
警告:第15行的/web1/../test3.php中为foreach提供的参数无效
我的开发服务器是一个带有PHP5.3.2的交钥匙Linux LAMP服务器
我的web主机在Linux上运行PHP5.2.17
在web上查找错误消息似乎表明从XML提要读取的数据没有被PHP5.2.17视为数组
我尝试过的“无效参数…foreach”下的解决方案无法解决问题
有没有办法解决这个问题?看起来您的网络主机已经禁用了在internet上打开文件的功能
我不确定simplexml加载文件是如何工作的,但如果你在网站上运行phpinfo,并且诸如allow_url_fopen和allow_url_include等选项被禁用,这是一个很好的指示。看起来Torstein的直觉是“在按钮上”;我的网络主机似乎正在阻止从internet下载文件 我使用此代码段尝试将远程文件加载到本地副本:- 如果@拷贝'http://partners.userland.com/nytRss/nytHomepage.xml“,”./buffer.xml” 生成的文件buffer.xml包含以下内容:- 您请求的URL已被阻止。URL=partners.userland.com/nytRss/nytHomepage.xml 这不是特定于此url的,我在BBC新闻源url上得到了相同的结果 因此,有迹象表明这不是PHP问题 我已经向我的网络主机提供商提出了这个问题 这个问题提醒我的一件事是,PHP错误消息和行号可能与实际问题相去甚远 多亏了托斯坦,马里奥和古斯德帮我解决了这个问题
BillP美元标题有效吗?尝试打印$rss;或者打印\u r$rss->channel->item;若要查看是否存在问题,请var\u dump$rss->channel->item,并通知我们输出内容。在两个服务器上,allow\u url\u fopen都处于打开状态,allow\u url\u include处于关闭状态。看起来我的主机服务器没有读取提要。我已经在没有foreach循环的情况下运行了脚本。在我的开发m/c中,这条线可以工作,在主机服务器上我什么也得不到。看起来这似乎是一个影响SimpleXML的实现/PHP5.2.17问题。GusDe Cool:-正如您所期望的,开发服务器上的var_dump$rss->channel->item的结果。在主机服务器上,我得到NULL。