【发布时间】:2012-06-26 02:55:02
【问题描述】:
我正在开发一个网站,我想让用户可以在帖子上微笑。 我的(只是功能性的)想法是以这种方式使用数组:
$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)#' 因为我希望仅在前面的字符为“开始”(^)或“空白”且后续字符为“结束”时应用表情符号( $) 或“空白”。执行此操作的正确正则表达式是什么?
【问题讨论】:
-
您希望仅在字符串的开头或结尾替换表情符号?
-
不,无处不在...甚至在开头或结尾...与任何其他论坛完全一样...
标签: php regex preg-replace