rss解析函数中的PHP解析错误

时间:2010-08-26 16:52:20

标签: syntax php4 feedparser

我有一个急需网站的客户,但我无法访问控制面板等信息。

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,

5 个答案:

答案 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)函数