这将是一个数据数组:
$array = array("sad","bow","blabla");
如果
$input = "I love Stackoverflow! :bow: so much";
输出应为:
I love Stackoverflow <img src="smiley/bow.gif" alt=""/> so much
实现这一目标的最佳和最快方法是什么?
答案 0 :(得分:1)
$array = array(':('=>"sad",'-_-'=>"bow",'bla'=>"blabla");
$input = "I love Stackoverflow! :bow: so much";
$output = str_replace(array_keys($array), array_values($array), $input);
编辑:抱歉..没有清楚地看清楚。
尝试2:
preg_replace('`:(\w+):`', '<img src="smily/\1.gif" alt=""/>', $input);
无论如何都喜欢这样。
可能必须使用$1
代替\1
。阅读the docs。
答案 1 :(得分:0)
//string replace example.
$input = "I love Stackoverflow! :bow: so much";
echo str_replace(":bow:","< img src='smiley/bow.gif' alt=''/>",$input)."<br /><br />";
//use string replace with foreach
$array = array("sad","bow","blabla");
foreach($array as $value)
{
$input = "I love Stackoverflow! :'".$value."': so much";
echo str_replace(":'".$value."':","< img src='smiley/$value.gif' alt=''/>",$input);
}