1

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

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

我认为 strip_tags 混淆了。

有什么办法可以解决这个问题吗?

4

2 回答 2

1

如果您调用strip_tags()它,您会将字符串视为 HTML。因此,这些实体应该在您使用它之前进行编码&lt;,否则它们将被视为 HTML 标记的开始和结束。&gt;strip_tags()

您将需要对这些实体进行编码。使用strip_tags()应该是安全的。

于 2011-12-16T02:21:43.447 回答
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($reply),这一切都是没有意义的,如果他们愿意,可以让用户放在括号中......

于 2011-12-16T02:24:04.557 回答