Hola,
Cuando conoces el texto exacto a buscar es mejor usar str_repalce() (
www.php.net/str_replace). Y str_replace() acepta arrays como parametros. Podrias hacer:
Código PHP:
$smiles=array(';)',':P');
$imagenes=array("<img src='smile1.gif'>","<img src='smile2.gif'>");
str_replace($smiles,$imagenes,$resultado);
Sin bucles.
Saludos.