No se cual puede ser el error, yo estoy usando str_replace y me funciona bien:
Código PHP:
$replace=str_replace(":)",'<img src="img/f_sonrie.gif" width="16" height="16">',$replace);
$replace=str_replace(";)",'<img src="img/f_guino.gif" width="16" height="16">',$replace);
$replace=str_replace(":]",'<img src="img/f_risa_gigante.gif" width="16" height="16">',$replace);
$replace=str_replace(":(",'<img src="img/f_no_azul.gif" width="15" height="15">',$replace);
$replace=str_replace("o_0",'<img src="img/f_ojon.gif" width="15" height="15">',$replace);
$replace=str_replace(":s",'<img src="img/f_desconsertado.gif" width="15" height="15">',$replace);
$replace=str_replace(":?:",'<img src="img/f_quest.gif" width="15" height="15">',$replace);
$replace=str_replace(":lol:",'<img src="img/f_lol.gif" width="15" height="15">',$replace);
$replace=str_replace(":p",'<img src="img/f_lengua.gif" width="15" height="15">',$replace);
$replace=str_replace(":P",'<img src="img/f_lengua.gif" width="15" height="15">',$replace);
$replace=str_replace(":o",'<img src="img/f_ooo.gif" width="15" height="15">',$replace);
$replace=str_replace(":O",'<img src="img/f_ooo.gif" width="15" height="15">',$replace);