Ottimo il js! Mi serviva proprio anche se è ot!

Per ciò che riguarda il replace str_replace accetta anche array come parametri il che vuol dire che puoi prepararti l'array delle faccine in questo modo:

Codice PHP:
$faccine[]='[:-)]';
$faccine[]='[:D]';

$imgs[]='[img]emoticons/sorriso.gif[/img]';
$imgs[]='[img]emoticons/risata.gif[/img]'
Preparato l'array lo passi a str_replace che fa tutto da solo:

str_replace( $faccine , $imgs , $text ) ;

ed il gioco è fatto. Semplice no!