文本替换为 PHP 中用户描述帖子上的表情符号



我用javascript制作了这个脚本,它用表情符号替换了文本,当我在文本区域':)''<3'等中写作时,工作正常。

但是当我写一篇文章并用这个描述保存它时" :)" 我希望出现表情符号而不是文本" :)">

显示已保存帖子说明的行:

<p class="ptext msg_wrap" id="message"><?php echo $row['post_description']; ?>

Javascript 代码:

<script type="text/javascript">
var map = {
"<3": "u2764uFE0F",
"</3": "uD83DuDC94",
":D": "uD83DuDE00",
":)": "uD83DuDE03",
";)": "uD83DuDE09",
":(": "uD83DuDE12",
":p": "uD83DuDE1B",
";p": "uD83DuDE1C",
":'(": "uD83DuDE22"
};
function escapeSpecialChars(regex) {
return regex.replace(/([()[{*+.$^\|?])/g, '\$1');
}
document.getElementById('message').oninput = function() {
for (var i in map) {
var regex = new RegExp(escapeSpecialChars(i), 'gim');
this.value = this.value = this.value.replace(regex, map[i]);
}
};
</script>

您已经为oninput事件编写了 JS 函数。 这意味着,它将寻找输入来触发更改,但您在从 db 动态加载文本时<p>在段落中分配文本。 将<p>更改为<input>,或者更好的是,将您的事件更改为onLoad.

最新更新