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。