我正在使用DOMDocument
从网页中检索几位文本并将它们放入数组中。相同的代码适用于另一台服务器,但不适用于我的。我得到Trying to get property of non-object
循环的每次迭代,while
最后数组保持为空。
$html = file_get_contents("http://sugarkettle.site44.com/catering.html");
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);
libxml_clear_errors();
$meatPrices = array();
function fillArrayFromDOM($array,$type) {
global $doc;
$i = 0;
$label = 1;
$array = array();
while ($label <= 15):
$array[$i] = $doc->getElementById($type.$label)->textContent;
$i++;
$label++;
endwhile;
return $array;
}
fillArrayFromDOM($meatPrices,"meat");
echo var_dump($meatPrices);
这是它的工作链接: http ://www.evintr.com/willtest.php
他正在运行 GoDaddy 服务器,而我有一个本地 WAMP (2.2) 服务器。我可以提供的任何配置选项都可以解释为什么会发生这种情况?还是问题与我的服务器配置无关?
非常感谢任何帮助。提前致谢!
更新 1 - 2012 年 11 月 16 日
在我的服务器上,我已经测试过$meatPrices[1] = $doc->getElementById('meat1')->textContent;
并且可以正常工作。无论出于何种原因,在while
循环内部,相同的表达式(getElementById
参数中的变量除外)都会抛出错误:Trying to get property of non-object
.
更新 2 - 2012 年 11 月 17 日
我的 WAMP 服务器正在运行 PHP 版本5.3.13。我朋友的服务器正在运行 PHP 版本5.3.6。