PHP用img标签替换笑脸

时间:2015-10-17 11:40:37

标签: php regex

我正在尝试用img标签替换smileycodes。

我想替换它:

:blush: 

由:

<img src='images/blush.png' />

&#34;脸红&#34;是一个多变的,所以它可以是任何笑脸。

我必须更换冒号之间的所有内容。我不熟悉正则表达式。

你能帮助我吗?

3 个答案:

答案 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);