【发布时间】:2013-03-23 12:34:05
【问题描述】:
谁能解释一下这个正则表达式的含义?
$html = preg_replace("# <(?![/a-z]) | (?<=\s)>(?![a-z]) #exi", "htmlentities('$0')", $html);
有人在How to strip tags in a safer way than using strip_tags function? 上添加了它,但我无法理解。
这是我在stackoverflow上的第一篇文章,如果我犯了任何错误,请原谅我。
谢谢!
【问题讨论】:
-
粘贴完整的代码,最后的$html是什么?
-
strip_tags 是完全安全的。但是您必须将其与循环一起使用。如果有人可以正确使用正则表达式,他可以正确使用 strip_tags。但问题当然不是关于它的。
-
当心,
preg_replace上的e修饰符是一个(可能的)安全漏洞(可能允许代码执行),将在 PHP 5.5 中弃用 -
@silentboy 是的.. 但我对 strip_tags 的感觉很糟糕,它会剥离 之间的所有文本,不管它是否是 html 标签
-
@CarlosCampderrós 谢谢卡洛斯 .. 我会进一步看