gpt4 book ai didi

PHP文字转表情

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:43 24 4
gpt4 key购买 nike

我一直有点挣扎......

我查了大约 5 个与此相关的 stackoverflow 问题,但似乎没有一个符合我的想法。基本上我只想用表情符号代替“文字”。

问题是我希望该词不属于另一个词的一部分时被转换。

这是我目前的代码:

$text = ":D i dont kn:ow about this :O i just want to :) and :D everyday:P";
$icons = array(
':)' => '<img class="postemot" src="/emoticons/smile_yell.png" />',
':D' => '<img class="postemot" src="/emoticons/laugh_yell.png" />',
':(' => '<img class="postemot" src="/emoticons/sad_yell.png" />',
'>:O' => '<img class="postemot" src="/emoticons/scared_yell.png" />',
':p' => '<img class="postemot" src="/emoticons/tongue_yell.png" />',
':P' => '<img class="postemot" src="/emoticons/tongue_yell.png" />',
':O' => '<img class="postemot" src="/emoticons/surprised_yell.png" />',
':o' => '<img class="postemot" src="/emoticons/surprised_yell.png" />'
);
foreach($icons as $icon=>$image) {
$icon = preg_quote($icon);
$text = preg_replace("~\b$icon\b~",$image,$text);
}
echo $text;

但这就是行不通。输出不正确。实际上唯一输出的表情是最后一个,"everyday:P",这是不正确的。

最佳答案

在表情符号周围应用单词边界元字符是不正确的,因为 \b 匹配不需要的位置:

everyday:P
^ asserts right before here

因此您必须使用环视来处理另一个断言,以确保表情符号不被非空格字符包围:

(?<!\S)$icon(?!\S)

关于PHP文字转表情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com