【发布时间】:2012-07-09 21:31:14
【问题描述】:
我已经编写了删除 HTML 标记的代码,但它也删除了 a<b 类型的字符串。我希望它不要删除像 2<3 或 a<b 这样的字符串。
$term="a<b";
echo "Text is--->".preg_replace('/(?:<|<).+?(?:>|>)/', '', $term);
如何在不删除 LT 或 GT 的情况下删除字符串中的 html 标签?
【问题讨论】:
-
你为什么不用
strip_tags? -
使用正确的实体:
$term = "a&lt;b";,尖括号应该不输出到 HTML 除非它们是标签开头的一部分,或者关闭。鉴于正则表达式,这不会阻止您的问题,但是为什么要同时删除&lt;和&lt;和 then 正则表达式有问题,不允许a<b通过不受影响?跨度> -
顺便说一句:如果你进行了正确的输出编码,你可能不需要删除标签(除非这真的是 HTML 并且你想从中获取明文(在这种情况下,但是 "a