PHP:strip_tags()是否会自动关闭XHTML标签?

时间:2015-09-01 23:32:18

标签: php strip-tags

PHP手册说

  

5.3.4 strip_tags()不再剥离自闭XHTML标记,除非selfable_tags中也给出了自闭XHTML标记。

但是当我这样做时(5.5):

$text = "<base/><br/>World<hr><input/>";

echo strip_tags($text);

输出为World,即它会删除自闭XHTML标记。

1 个答案:

答案 0 :(得分:5)

本案例中的文档完全错误。

strip_tags()没有任何允许的标签剥离自闭标签就好了。然而,改变的是,从> = 5.3.4开始,自闭合标签被忽略:

$string = "foo<br>bar<br/>baz<br />\r\n";

echo strip_tags($string); // foobarbaz
echo strip_tags($string, '<br>'); // foo<br>bar<br/>baz<br />
echo strip_tags($string, '<br/>'); // foobarbaz
echo strip_tags($string, '<br />'); // foobarbaz
echo strip_tags($string, '<br><br/>'); // foo<br>bar<br/>baz<br/>

created a bug要在文档中修复它。

docs are updated反映实际的正确行为。

然而,自我关闭和“普通”标签需要单独定义的事实对我来说似乎很奇怪,所以也许也需要修复。

<击>

在阅读原文bug report时,我不完全清楚已修复的内容以及预期的输出结果是什么,所以我需要进一步研究。

我最初的假设是,应该添加自动关闭标签和非自动关闭标签是错误的。