为什么PHP strip_tags(“是

时间:2012-05-16 10:35:10

标签: php strip-tags

我即将制作一个char计数函数,用于计算来自tinyMce textarea的输入。 使用以下代码进行服务器端验证:

$string = "is<isvery interesting <thatthis willbe stripped";
$stripped = strip_tags($string);
$count = strlen($stripped); // This will return 2

您可能会注意到$ string根本没有标记,无论如何strip_tags()会删除第一个小于号的所有内容。

这是一个错误还是一个功能?

2 个答案:

答案 0 :(得分:4)

strip_tags实际上非常愚蠢。它剥离了一切,只是远程看起来像HTML标签。也就是说,从<和一些字母数字符号开始,直到结束>或尽可能得到。

在此上下文中观察到的行为是一个错误。但是,strip_tags不是在输入HTML上进行错误纠正的工具。它的目的是剥离东西,以便其余部分可以安全地嵌入网站。有疑问,它剥离更多,这是一件好事。

答案 1 :(得分:4)

已记录在案:

  

因为strip_tags()实际上并不验证HTML,部分或   破碎的标签可以导致删除比预期更多的文本/数据。

http://php.net/manual/en/function.strip-tags.php