假设$ reply =“blah blah blah> < blah blah blah”; (> <在韩国流行的表情符号)
但是,当我使用“strip_tags”去除$ reply中的每个html和php标签时,“<”之后的每个字符被删除了。
我认为strip_tags混淆了。
有什么解决方案可以解决这个问题吗?
答案 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('><', '><', $reply);
// Then strip tags
$reply = strip_tags($reply);
当然,如果你只是htmlentites($回复),这都是没有意义的,并且如果他们想要的话,让用户放入括号......