我正在尝试从一段文本中删除HTML标记。然而问题是,无论我使用什么 - 正则表达式,strip_tags等。遇到同样的问题:它还会删除不是HTML但看起来像它的文本。
Some <foo@bar.com> Content--> Some Content
Some <Content which looks like this --> Some
有没有办法解决这个问题?
答案 0 :(得分:3)
完全正确的解决方案将是一个成熟的HTML解析器。有关完整讨论,请参阅this legendary question。
简单的80%解决方案是查找所有已知标签并剥离它们。
RegExp('</?(a|b|blockquote|cite|dd|dl|dt|...|u)\b.*?>')
如果您循环使用标记数组并构建表达式,则代码将更具可读性。它不会很好地处理评论,因此如果您需要的不仅仅是黑客质量,请不要采用黑客方法。如果您需要正确性,请使用实际的HTML解析器(例如PHP中的DOMDocument)。
答案 1 :(得分:2)
您是否尝试过HTML purifier库?您可以将其配置为去除所有标签,我发现该库非常可靠。