我正在尝试用img标签替换smileycodes。
我想替换它:
:blush:
由:
<img src='images/blush.png' />
&#34;脸红&#34;是一个多变的,所以它可以是任何笑脸。
我必须更换冒号之间的所有内容。我不熟悉正则表达式。
你能帮助我吗?
答案 0 :(得分:2)
对于多次替换,您可以使用带有数组而不是字符串的str_replace进行搜索,其中一个数组可以将笑脸代码替换为第二个数组的值。但是你需要在数组中配置所有静态的值。
另一个解决方案是循环遍历可能的笑脸代码并为每个代码执行str_replace:
$possibleCodes = array('blush', 'smiley2', 'smiley3');
foreach($possibleCodes as $code) {
str_replace(':'.$code.':', "<img src='images/".$code.".png'", $yourString);
}
这需要使图像名称与笑脸代码相同。
答案 1 :(得分:1)
如果您不熟悉正规用法,为什么要使用正则表达式?没有正则表达式,它非常简单易行。
str_replace(":blush:", "<img src='images/blush.png' />", $myString);
答案 2 :(得分:1)
您可以像{/ p>一样使用preg_replace
preg_replace('~(:blush:)~','<img src="images/blush.png" />',$your_string);
<强>被修改强>
如果你有一个要替换的字符串数组,那么你可以像{/ p>一样使用str_replace
$find_array = array('blush', 'smiley2', 'smiley3');
$replace_array = ['<img src="images/blush.png" />','<img src="images/smiley2.png" />','<img src="images/smiley3.png" />']
str_replace($find_array,$replace_array,$your_string);