Os pongo una expresión regular para buscar palabras completas dentro de un texto. Hay que utilizarla con la función preg_replace. Espero que os sirva y no os asustéis mucho cuando la veais.
Saludos
Mónica.
$regEx = '\'(?!((<.*?)|(<a.*?)))((^|[^\pL])'. $word .'([^\pL]|$))(?!(([^<>]*?)>)|([^>]*?</a>))\'si';
En la variable $word estaría la palabra que queremos buscar.