如果我再次写一个表情符号“:) :) :)”它将只替换第一个。请问我的问题在哪里。
我的php
function smileys($text){
// Smiley to image
$smileys = array(
':)' => '<img src="smilies/smile.gif" border="0" alt="" />',
':-)' => '<img src="smilies/smile.gif" border="0" alt="" />',
':D' => '<img src="smilies/smile.gif" border="0" alt="" />',
':-(' => '<img src="smilies/angry.gif" border="0" alt="" />',
'angel' => '<img src="smilies/angel.gif" border="0" alt="" />',
);
// Now you need find and replace
foreach ($smileys as $search => $replace) {
$text = preg_replace("#(?<=\s|^)" . preg_quote($search) . "#", $replace, $text);
}
return $text;
}
echo''.smileys($description).'';
答案 0 :(得分:0)
str_replace是要走的路。
function smileys($text)
{
$toReplace = array(
':)',
':-)',
':D',
':-(',
'angel');
$replacement = array(
'<img src="smilies/smile.gif" border="0" alt="" />',
'<img src="smilies/smile.gif" border="0" alt="" />',
'<img src="smilies/smile.gif" border="0" alt="" />',
'<img src="smilies/angry.gif" border="0" alt="" />',
'<img src="smilies/angel.gif" border="0" alt="" />');
return str_replace($toReplace,$replacement,$text);
}
通过这种方式,您可以将所有类型的表情替换为图像标签,甚至可以同时替换不同的图像标签。