嘿我试图调用脚本对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函数。
答案 0 :(得分:1)
$id->replaceChild($p, $op);
此时,$op
实际上是一个DOMNodeList,由getElementsByTagName调用返回。你不能使用nodelist进行replaceChild调用 - 它需要一个DOMNode,而不是DOMNodeList。