Ik snap je probleem niet precies, wil je zeggen dat je zo'n smileys wel kunt filteren
;)
Maar zo een niet ?
:)
Geef anders even een simpel voorbeeld.
Dat komt hoogstwaarschijnlijk omdat de combinatie van een : met een 'word character' gezien wordt als een 'word boundary' die jij met \b omschrijft.
mischien eerst filtere naar \: ? om : op te heffe?
Kun je niet gewoon:
<?php
$input = str_replace(':)', '<img alt=":)" border="0" src="images/emoticons/smile.gif">', $input);
$input = str_replace(';)', '<img alt=";)" border="0" src="images/emoticons/wink.gif">', $input);
$input = str_replace('+o(', '<img alt="+o(" border="0" src="images/emoticons/puke.gif">', $input);
?>
... enz?