Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/09/2011, 06:01
Avatar de vgonga1986
vgonga1986
 
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Duda con preg_replace (highlight)

Buenas,

Hoy vengo a preguntar y no a responder. El tema es sencillo, pero se me ha atascado. Lo que quiero hacer es añadir a los resultados de una búsqueda que se resalte la palabra buscada (técnica conocida como highlight). Para ello, en la página de resultados de la búsqueda que rodear el texto con <span class="highlighted"></span>. El código es más o menos así:

Código PHP:
Ver original
  1. function HighlightedText($text, $search) {
  2.     return preg_replace('/' . strtolower($search) . '/i', '<span class="highlighted">' . $search . '</span>', $text);
  3. }

En $text tengo el texto en el que quiero reemplazar la palabra buscada (que está en $search) por la misma palabra, pero rodeada del <span>. Mi problema es de capitalización.

Si en el texto está la palabra CoMENtaRIo y el usuario en la búsqueda introduce comentario. Al imprimir el texto resaltado, me aparece resaltado, pero me aparece con la capitalización de la búsqueda, yo quiero conservar la que tenga el texto.

A ver si alguien me puede echar una mano, y no al cuello. Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?