Resaltar palabras en una frase con PHP

0 - , - 11/08/2010 11:15:22

A veces es necesario resaltar determinadas palabras dentro de un texto. Por ejemplo a la hora de mostrar los resultados de una búsqueda, es una buena idea resaltar los términos buscados dentro de los resultados de búsqueda. Esto es exactamente lo que hace esta función:

function highlight($cadena, $arr_palabras) {
	if (!is_array ($arr_palabras) || empty ($arr_palabras) || !is_string ($cadena)) {
		return false;
	}
	$str_palabras = implode ('|', $arr_palabras);
 	return preg_replace ('@\b('.$str_palabras.')\b@si', '<strong style="background-color:yellow">$1</strong>', $cadena);
}

Un ejemplo de uso podría ser:

<?php
function highlight($cadena, $arr_palabras) {
	if (!is_array ($arr_palabras) || empty ($arr_palabras) || !is_string ($cadena)) {
		return false;
	}
	$str_palabras = implode ('|', $arr_palabras);
 	return preg_replace ('@\b('.$str_palabras.')\b@si', '<strong style="background-color:yellow">$1</strong>', $cadena);
}

$Texto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut adipiscing risus nec arcu interdum at lobortis neque auctor. Morbi in gravida ipsum. Nunc imperdiet, metus sit amet fermentum volutpat, nisi tortor auctor dui, sed porttitor augue mi vitae arcu. Mauris vitae ante sit amet elit tincidunt eleifend et tempor est. Aenean vitae viverra velit. Maecenas pulvinar dolor at ante eleifend vitae fermentum dui auctor. Pellentesque fringilla ultrices odio, vitae elementum lorem gravida in. Curabitur tincidunt sagittis luctus. Cras sit amet sagittis sapien. Nunc tempus dapibus nibh, et posuere nibh aliquam in. ";
$Palabras = array("Lorem","sit","amet");

echo highlight($Texto, $Palabras);
?>

Visto en phpsnippets » »

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha