function do_smilies($message)
{
// Here you can add additional smilies if you like
$text = array(':)', '=)', ':(', '=(', ':D', '=D', ';)', ':x', ':rolleyes:', ':roll:', ':-)', ':-(', ':-D', ';-)', ':mad:', ':-x', ':-o', ':o', ':l', ':-l', ';l', ';-l', ':O', ':-O', ':sceptic:', ':-|', ':|');
$img = array('smile.png', 'smile.png', 'sad.png', 'sad.png', 'big_smile.png', 'big_smile.png', 'wink.png', 'mad.png', 'roll.png', 'roll.png', 'smile.png', 'sad.png', 'big_smile.png', 'wink.png', 'reallymad.png', 'mad.png', 'shocked.png', 'shocked.png', 'sharpsmile.png', 'sharpsmile.png', 'sharpsmileoneye.png', 'sharpsmileoneye.png', 'shocked.png', 'shocked.png', 'sceptic.png', 'noexpression.png', 'noexpression.png');
// Uncomment the next row if you add smilies that contain any of the characters &"'<>
$text = array_map('htmlspecialchars', $text);
$message = ' '.$message.' ';
$num_smilies = count($text);
for ($i = 0; $i < $num_smilies; $i++)
$message = preg_replace("#(?<=.\W|\W.|^\W)".preg_quote($text[$i], '#')."(?=.\W|\W.|\W$)#m", '$1<img src="img/smilies/'.$img[$i].'" alt="'.$text[$i].'">$2', $message);
return substr($message, 1, -1);
}
Den här fungerar. Men inte om jag lägger till <>/\ i någon av smiliesarna. Här är en till variant som inte fungerar, fastän jag fick det att funka med MSN-smilies tidigare.
function do_smilies($message)
{
// Here you can add additional smilies if you like
$text = array(':)', '=)', ':(', '=(', ':D', '=D', ';)', ':x', ':rolleyes:' ':cat:', ':confused:', ':cool:', ':crying:', ':cry:', ':dog:', ':embarrassed:', ':glimpse:', ':happy:', ':glad:', ':smile:', ':heart:', ':heart-broken:', ':laughing:', ':laugh:', ':skratt:', ':light-bulb:', ':lips:', ':kiss:', ':kyss:', ':mad:', ':moon:', ':rose:', ':rosew:', ':sad:', ':ledsen:', ':saint:', ':helgon:', ':shocked:', ':shock:', ':star:', ':surprised:', ':tounge:', ':-P', ':-p', ':p', ':P');
$img = array('smile.png', 'smile.png', 'sad.png', 'sad.png', 'big_smile.png', 'big_smile.png', 'wink.png', 'mad.png', 'roll.png', 'cat.png', 'confused.png', 'cool.png', 'crying.png', 'crying.png', 'dog.png', 'embarrassed.png', 'glimpse.png', 'happy.png', 'happy.png', 'happy.png', 'heart.png', 'heart-broken.png', 'laughing.png', 'laughing.png', 'laughing.png', 'light-bulb.png', 'lips.png', 'lips.png', 'lips.png', 'mad.png', 'moon.png', 'rose.png', 'rose-withered.png', 'sad.png', 'sad.png', 'saint.png', 'saint.png', 'shocked.png', 'shocked.png', 'star.png', 'surprised.png', 'tounge.png', 'tounge.png', 'tounge.png', 'tounge.png', 'tounge.png');
// Uncomment the next row if you add smilies that contain any of the characters &"'<>
$text = array_map('htmlspecialchars', $text);
$message = ' '.$message.' ';
$num_smilies = count($text);
for ($i = 0; $i < $num_smilies; $i++)
$message = preg_replace("#(?<=.\W|\W.|^\W)".preg_quote($text[$i], '#')."(?=.\W|\W.|\W$)#m", '$1<img src="img/smilies/'.$img[$i].'" alt="'.$text[$i].'">$2', $message);
return substr($message, 1, -1);
}