0
我有以下test.php
文件,当我运行它时,关闭</h1>
标记被删除。DOMDocument删除脚本标记内的结束标记
<?php
$doc = new DOMDocument();
$doc->loadHTML('<html>
<head>
<script>
console.log("<h1>hello</h1>");
</script>
</head>
<body>
</body>
</html>');
echo $doc->saveHTML();
下面是结果,当我执行该文件:
PHP Warning: DOMDocument::loadHTML(): Unexpected end tag : h1 in Entity, line: 4 in /home/ryan/NetBeansProjects/blog/test.php on line 14
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<script>
console.log("<h1>hello");
</script>
</head>
<body>
</body>
</html>
那么,为什么它删除代码?这是一个字符串,所以不应该忽略它?
作为一个猜测,我认为标签被删除,因为它在脚本元素中,所以斜线可能需要转义。尝试将
hello
放在体内,看看会发生什么。 – jeff它在身体中做同样的事情。但是我读过,'loadXML()'支持这个。我试过了,它并没有删除标签,但是当我加载外部html文件时,我的错误是无效的。 –
如果你反转你的引号,或者像这样''console.log(\“
hello
\”);' –