Ich habe mich letztlich auch mit dem Smiley-Problem beschäftigt.
Allerdings fande ich diese str_replace-Lösung zu umständlich (jedesmal img-tag eingeben usw.)
Ich habe da eine andere Lösung gefunden:
$smileys = array(
0 => ":)",
1 => ":(",
...
13=> ":sing:");
$gif = array(
0 => "smile.gif",
1...