PHP DOMDocument LoadHTML 在脚本标记中解析 CDATA 节时出现的问题


Problems with PHP DOMDocument LoadHTML when parsing CDATA Sections in Script tags

我在尝试使用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 时显示一个打印按钮。我不认为这是最有效的方法(以前的开发人员创建了这个),但即便如此,我也希望找到解决这个问题的方法,因为我将来可能会再次遇到这个问题,而且可能不像现在这样容易解决。

这个问题似乎有解决方案 为什么要在使用 document.write() 编写标签时拆分标签?

我想php DOM比大多数浏览器更严格。我有时看到的解决方案是发布在链接答案下方的评论中的解决方案,用 <'/script> 转义它,或者在这种情况下<'/style> ,但我认为只需要脚本标签。