在我的PHP脚本中获取非对象错误

时间:2012-03-25 23:07:06

标签: php

嘿我试图调用脚本对html文件进行一些更改,但是当我运行脚本时它会告诉我它正在调用非对象。显然我做错了什么,但是什么?这是剧本。

    /*Dom controllers*/
    $dom = new DOMDocument();
    $dom->loadHTML('index.html');
    $id = $dom->getElementById('contact_us');
    $p = $dom->appendChild(new DOMElement('p'));
    $op = $dom->getElementsByTagName('p');

    /* Dem POST vars used by dat Ajax mah ziggen, yeah boi*/
    if (isset($_POST['Home']) && isset($_POST['About']) && isset($_POST['Contact']) && isset($_POST['sexyText'])){
    $home = $_POST['Home'];
    $about = $_POST['About'];
    $contact = $_POST['Contact'];
    $text = $_POST['sexyText'];
    trim($home);
    trim($about);
    trim($contact);
    trim($text);
    }

    function post(){
        global $dom, $id, $home, $about, $contact, $text, $textp, $p, $op;
                $textp = $dom->createTextNode($text);
                $p->appendChild($textp);
                $id->replaceChild($p, $op);
                $dom->saveHTMLFile('index.html');
    }


    post();
    echo 1;


?>

错误发生在replaceChild函数。

1 个答案:

答案 0 :(得分:1)

            $id->replaceChild($p, $op);

此时,$op实际上是一个DOMNodeList,由getElementsByTagName调用返回。你不能使用nodelist进行replaceChild调用 - 它需要一个DOMNode,而不是DOMNodeList。