我有一个急需网站的客户,但我无法访问控制面板等信息。
PHP版本是4.4这是一个痛苦,因为我已经习惯了5。
第一个问题是我一直在接受:
Parse error: parse error, unexpected T_OBJECT_OPERATOR, expecting ')' in D:\hshome\*******\********\includes\functions.php on line 37
这是有问题的功能:
function read_rss($display=0,$url='') {
$doc = new DOMDocument();
$doc->load($url);
$itemArr = array();
foreach ($doc->getElementsByTagName('item') as $node) {
if ($display == 0) {
break;
}
$itemRSS = array(
'title'=>$node->getElementsByTagName('title')->item(0)->nodeValue,
'description'=>$node->getElementsByTagName('description')->item(0)->nodeValue,
'link'=>$node->getElementsByTagName('link')->item(0)->nodeValue);
array_push($itemArr, $itemRSS);
$display--;
}
return $itemArr;
}
有问题的一行:
'title'=>$node->getElementsByTagName('title')->item(0)->nodeValue,
答案 0 :(得分:2)
PHP4不支持对象解除引用。所以$obj->something()->something
将不起作用。你需要做$tmp = $obj->something(); $tmp->something
...
答案 1 :(得分:0)
你不能在PHP 4中这样做。
必须做类似
的事情 $nodes = $node->getElementsByTagName('title');
$item = $nodes->item(0);
$value = $item->nodeValue,
尝试一下,它会起作用。
答案 2 :(得分:0)
你不能在PHP 4中链接对象调用。你将不得不分别对一个变量进行每次调用并将其全部存储起来。
$titleobj = $node->getElementsByTagName('title');
$itemobj = $titleobj->item(0);
$value = $itemobj->nodeValue;
...
'title'=>$value,
你必须在所有这些链式电话上进行这项工作
至于.htaccess ...你需要和控制实际服务器的人交谈。听起来像.htaccess不允许改变你想要改变的设置。
答案 3 :(得分:0)
您需要将该行分解为单个变量。 PHP 4不喜欢 - >括号后面。这样做:
$title = $node->getElementsByTagName('title');
$title = $title->item(0);
$description = $node->getElementsByTagName('description');
$description = $description->item(0);
$link = $node->getElementsByTagName('link');
$link = $link->item(0);
$itemRSS = array(
'title'=>$title->nodeValue,
'description'=>$description->nodeValue,
'link'=>$link->nodeValue);
每个的两个变量声明可能是多余的和精简的,我不确定PHP4将如何响应。如果需要,您可以尝试压缩它们。
答案 4 :(得分:0)
DOMDocument是php 5的功能。你无法使用它。 您可能需要使用DOM XML(PHP 4)函数