“<”之后的字符串使用PHP strip_tags函数时无法看到

时间:2011-12-16 02:19:46

标签: php strip-tags

假设$ reply =“blah blah blah> < blah blah blah”; (> <在韩国流行的表情符号)

但是,当我使用“strip_tags”去除$ reply中的每个html和php标签时,“<”之后的每个字符被删除了。

我认为strip_tags混淆了。

有什么解决方案可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

如果您在其上调用strip_tags(),则将字符串视为HTML。因此,在您使用<之前,应将这些实体编码为>strip_tags(),否则它们将被视为HTML标记的开头和结尾。

您需要对这些实体进行编码。然后,使用strip_tags() 安全

答案 1 :(得分:1)

有趣。我会亲自对可接受的部分进行实体编码,然后运行条带标签或htmlentities()...

<?php
// Initial user-input
$reply = "blah blah blah >< blah blah blah";

// Allow the emoticon you mentioned
$reply = str_replace('><', '&gt;&lt;', $reply);

// Then strip tags
$reply = strip_tags($reply);

当然,如果你只是htmlentites($回复),这都是没有意义的,并且如果他们想要的话,让用户放入括号......