我正在使用 XHTML 过渡文档类型在浏览器中显示内容。但是,显示的内容是通过 XML 解析器 (DOMDocument) 传递的,以便在输出到浏览器之前进行最后的润色。
我为我的网站使用定制设计的 CMS,它允许我对网站进行更改。我有一个模块,它允许我以类似于 WordPress 小部件的方式在我的网站上显示 HTML 脚本。
我现在面临的问题是我需要确保通过此模块提供的任何代码都应该采用有效的 XHTML 格式,否则模块将需要将代码转换为有效的 XHTML。目前,如果输入代码的一部分不符合 XHTML,那么我的 XML 解析器会中断并引发警告。
我正在寻找的是一种解决方案,它对 URL 中存在的实体和通过 TextArea 控件提供的输入的文本部分进行编码。例如,以下字符串将破坏解析器给出实体引用错误:
<script type="text/javascript" src="http://www.abcxyz.com/foo?bar=1&sumthing"></script>
以下行也会导致相同的错误:
<a href="http://www.somesite.com">Books & Cool stuff<a/>
PS如果我使用htmlentities
or htmlspecialchars
,他们也会转换标签的尖括号,这不是必需的。我只需要对字符串的 url 和文本部分进行转义/编码。
任何帮助将不胜感激。
谢谢和问候, Waqar Mushtaq