-2

从旧问题修订 - 现在使用不同的前进方式

我正在构建一个聊天框,并想使用表情符号。因此,当一个人发送“:)”时,它被替换为它的图像,不幸的是,我的代码不会发生这种情况。我也做了很多实验,我知道str_replace会实现我的项目鹅蛋,我决定使用preg_replace

<?php

$message = $chatText;

$emoticons = array(
"/\:\)/");


$replacements = array(
"<img src='images/icons/smileys/smile.png' width='20' height='20' alt='Smile' />");


$chatText = preg_replace($emoticons,$replacements,$message);


?>

而不是用笑脸替换“:)”,它只是插入文本<img src='images/icons/smileys/smile.png' width='20' height='20' alt='Smile' />

4

1 回答 1

1

这不是您的正则表达式的问题,而是您如何显示数据的问题。在某些时候,您正在使用类似的东西htmlspecialchars来防止聊天者将 HTML 注入您的聊天窗口。不幸的是,这导致笑脸也被逃脱。

您替换笑脸的代码应该转义原始文本后出现。

于 2012-08-28T15:43:02.917 回答