REVISED FROM OLD QUESTION- NOW USING DIFFERENT WAY FORWARD
我正在构建一个聊天框,并希望使用表情符号。因此,当一个人发送“:)”它被替换为和它的图像时,遗憾的是我的代码不会发生这种情况。我已经做了很多实验,我已经知道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' />
答案 0 :(得分:1)
这不是你的正则表达式的问题,而是你如何显示数据的问题。在某些时候,您使用htmlspecialchars
之类的东西来阻止聊天者将HTML注入您的聊天窗口。不幸的是,这也导致笑脸被转义。
替换表情符号的代码应该在转义原始文本后。