我有一串文字:
$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
中?