我有一个文本字符串:用值替换字符串中数组键
$string = "This is a comment :) :D";
和键与值的数组:
$smileys = Array(':)' => 'smile.gif', ':D' => 'happy.gif');
我想替换数组键的任何出现在字符串与他们的相关值,所以输出字符串将是:
$string = "This is a comment smile.gif happy.gif";
我该怎么做?我试过如下循环但没有运气?
foreach($smileys as $smiley){
$string = preg_replace("~\b$smileys\b~", $smileys[$smiley], $string);
}
编辑
我还想添加阵列之间的一些HTML和替换这样:
:D
变成
<img src="/happy.gif" />
但将相同的HTML需要如果是strtr
w,则在每个数组值中用过吗?
听起来像一个简单的字符串替换应该努力 - 为正则表达式 – alfasin