可能重复:
用他们的图像替换表情符号列表
我正在开发一个网站,我想让用户可以在帖子上微笑。我的(只是功能性的)想法是以这种方式使用数组:
$emoticons = array(
array("17.gif",":)"),
array("6.jpg",":P"),
.....
array("9.jpg",":'("),
array("5.gif","X)")
);
图片在 [0] 上,表情在 [1] 上。在每个 $post 上:
foreach($emoticons as $emoticon){
$quoted_emoticon = preg_quote($emoticon[1],"#");
$match = '#(?!<\w)(' . $quoted_emoticon .')(?!\w)#';
$post = preg_replace($match,'<img src="images/emoticons/'.$emoticon[0].'">',$post);
}
这很好用,但我的问题是'#(?!<\w)('
,因为我希望仅当前面的字符是“开始”( )或“空白”并且后续字符是“结束”( )或“空白”')(?!\w)#'
时才应用表情符号。什么是正确的正则表达式来做到这一点?^
$