2

我有一个聊天框,想用一个图标替换诸如“:D”之类的东西。

$chatText = str_replace(":D","<img src='images/icons/smileys/smile-big.png' width='20' height='20' alt='Big Smile' />",$chatText);

以上是我正在使用的代码。在聊天中,它不是用情感替换文本,而是用 html 代码替换“:D”:

<img src='images/icons/smileys/smile-big.png' width='20' height='20' alt='Big Smile' />

我已经做了一些改变(我已经研究过)的尝试,例如:

$chatText = str_replace(":D", "< img src=\"/images/icons/smileys/smile-big.png\" width=\"20\" height=\"20\" alt=\"Big Smile\" />",$chatText);

我在那里没有运气。我的问题是我怎样才能让它发挥作用,让用户能够有情绪。在我的代码的最顶端,我也有$chatText = htmlspecialchars($chatText, ENT_QUOTES);

4

1 回答 1

0

我看到了几个可能的问题——你的代码不是 100% 清楚的:

可能性 #1:您没有在 TEXTAREA 或其他内容中设置文本

如果您只是为 textarea 设置文本,那么它不支持嵌套 HTML,并且您将无法以这种方式制作表情符号。确实支持这些的 gmail 和 facebook 之类的东西基本上重新实现了内容的呈现。

要正确设置文本,您需要使用innerHTML某些特定div元素的属性来正确设置 HTML。

在 JQuery 中,我可能会写:

$('chat_text').html($('chat_text').html() + fixed_up_smilie_text);

可能性 2:您正在使用htmlspecialchars

如果您在将文本htmlspecialchars放入 HTML 之前使用它转义文本,那么您将看到您在上面看到的内容。修复很简单:不要^_^。

于 2012-09-25T12:53:10.153 回答