depende, si por ejemplo tus smileys son del tipo :sad: :winky: ...
bastaría con hacer un str_replace.
Para colocarlos te recomendaría usar un span con tamaño definido, algo así:
<style type="text/css">
span.caretos {
width: 16px;
height: 16px;
background-image: url(blabla.png);
}
.caretos .sad {...}
</style>
y un php srencillo:
$texto = preg_replace('/:([a-z]+):/i', '<span class="caretos //1"></span>', $texto);
El reemplazo usa expresiones regulares, si lo necesitas, lo explicaré algo más
Saludos ...