带有图像的str_replace文本

时间:2012-08-28 14:07:13

标签: php str-replace

我有一个聊天框,想用图标替换':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);

1 个答案:

答案 0 :(得分:0)

我发现了一些可能出现的问题 - 而不是100%从您的代码中清除:

可能性#1:你没有在TEXTAREA或其他东西中设置文本

如果您只是为textarea设置文本,那么它不支持嵌套HTML,并且您无法以这种方式执行表情符号。像gmail和facebook这样的东西,它们支持这些,基本上重新实现了内容的渲染。

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

在JQuery中我可能会写:

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

可能性#2:您正在使用htmlspecialchars

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