解析Script标签中的CDATA部分时PHP DOMDocument LoadHTML的问题

时间:2012-04-27 20:16:01

标签: php javascript html domdocument cdata

尝试使用PHP的DOMDocument类使用脚本标记解析HTML时,我遇到了此错误。

Warning: DOMDocument::loadHTML(): Unexpected end tag : style in Entity, line: 71 in /var/www/signage-dev/dynaml/includes/page.php on line 95

我甚至尝试过CDATA标签,但它导致了相同的错误

我的脚本标记是

<script type="text/javascript">
//<![CDATA[
document.write('<style type="text/css"> .printBTN { display: inline; } </style>');
//]]>   
</script>

此代码段应在启用JavaScript时显示打印按钮。我不相信这是最有效的方法(以前的开发人员创建了这个),但即便如此,我希望找到解决这个问题的方法,因为我将来可能再遇到这个问题而且可能不会就像这样容易修复。

1 个答案:

答案 0 :(得分:2)

这个问题似乎有解决方案Why split the tag when writing it with document.write()?

我猜php DOM比大多数浏览器都要严格。我有时看到的解决方案是在链接答案下方的评论中发布的解决方案,使用<\/script><\/style>转义,但我认为只需要脚本标记。