bue... es una opcion que ya había pensado, pero poco efectiva puesto que lo que desconozco la cadena que se vá a buscar, y perfectamente puede ser un principio de linea, ir a continuacion de una coma (sin espacio), etc...
Idem con la solución que dá pbaldovi: Si quito todo el contenido entre < y >, reemplazo ..... y reconstruyo... pero ¿donde iban los < > que quité anteriormente....
Es casi obligado el uso de expresiones regulares,
Resumiendo:
Digamos que la expresión regular debería encontrar TEXTO aqui:
<p class="especial">texto</p>
Pero no aqui:
<p class="texto">blbablablabla</p>
Esto es lo que estoy usando.... pero claro, falla:
Código:
$corregido = eregi_replace("([^<].*)(".$termino.")([^>].*)", "\\1<span style='background-color:#FFFF55;'>\\2</span>\\3", $cadena);
Esto falla, porque basta con que por delante lleve un <b> para que no lo encuentre.