假设 $reply = "blah blah blah > < blah blah blah"; (> < 是韩国流行的表情符号)
但是,当我使用“strip_tags”剥离 $reply 中的每个 html 和 php 标签时,“<”之后的每个字符都会被删除。
我认为 strip_tags 混淆了。
有什么办法可以解决这个问题吗?
假设 $reply = "blah blah blah > < blah blah blah"; (> < 是韩国流行的表情符号)
但是,当我使用“strip_tags”剥离 $reply 中的每个 html 和 php 标签时,“<”之后的每个字符都会被删除。
我认为 strip_tags 混淆了。
有什么办法可以解决这个问题吗?
如果您调用strip_tags()
它,您会将字符串视为 HTML。因此,这些实体应该在您使用它之前进行编码<
,否则它们将被视为 HTML 标记的开始和结束。>
strip_tags()
您将需要对这些实体进行编码。使用strip_tags()
应该是安全的。
有趣的。我会亲自对可接受的部分进行实体编码,然后运行带标签或 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($reply),这一切都是没有意义的,如果他们愿意,可以让用户放在括号中......