【发布时间】:2012-09-27 18:04:06
【问题描述】:
使用 PHP,如何从 HTML 字符串中删除除锚点 (<a>) 之外的所有标签,然后将所有保留字符转换为它们的 HTML 实体,但 <a> 标签除外?
例如,我会转换这个:
<p><a href="http://www.example.com/">Example.com</a> says that 5 < 6.</p>
进入这个:
<a href="http://www.example.com/">Example.com</a> says that 5 < 6.
【问题讨论】:
-
使用正则表达式,查看此处发布的答案 - stackoverflow.com/a/1736801/125551
-
感谢您的链接。我可以使用该正则表达式将锚点替换为一些字符串,并在使用 strip_tags 和 htmlentities 后将其放回原处。还有其他想法吗?
-
<a>标签是不是文本节点的父节点? -
可能,这使得它更加困难。我正在将 HTML 电子邮件转换为文本,因此它可以是锚文本节点内的任何内容。我可以在剥离标签之前提取链接,将超链接放在结束锚标签旁边,然后剥离标签,但这不是很好看。
标签: php email html-entities strip-tags