我试图用img标签替换smileycodes。PHP替换笑脸由img标签
我要取代这个:
:blush:
由:
<img src='images/blush.png' />
“脸红” 是variabele,所以它可以是任何的笑脸。
我必须替换冒号之间的所有内容。我不熟悉正则表达式。
你能帮我吗?
我试图用img标签替换smileycodes。PHP替换笑脸由img标签
我要取代这个:
:blush:
由:
<img src='images/blush.png' />
“脸红” 是variabele,所以它可以是任何的笑脸。
我必须替换冒号之间的所有内容。我不熟悉正则表达式。
你能帮我吗?
对于多个替换哟你可以使用str_replace与数组而不是字符串进行搜索,使用笑脸代码的数组替换为第二个数组的值。但是你需要配置数组中的所有值,它们是静态的。
另一种解决方案是遍历可能笑脸码和每个的它做str_replace函数:
$possibleCodes = array('blush', 'smiley2', 'smiley3');
foreach($possibleCodes as $code) {
str_replace(':'.$code.':', "<img src='images/".$code.".png'", $yourString);
}
这需要具有图像名称相同笑脸代码。
您可以使用preg_replace
等作为
preg_replace('~(:blush:)~','<img src="images/blush.png" />',$your_string);
编辑
如果你有一个字符串数组来代替,那么你可以简单地使用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);
这将用图像标记替换双点内的所有值 - 即使它不是笑脸的有效代码。此外,每个笑脸代码都会被blush.png取代,这可能是错误的。 – ynnus
查看我的更新回答@ynnus –
谢谢!你的代码作品! :) – Simon911