09 de Septiembre de 2010

Notas Espacio Programación

galería de imágenesvideo
AUTOR: Andrés Fernández
FECHA: 17/2/2009
LECTURAS:1291
Buscar Notas
volver
Búsquedas

Resaltar palabras en una búsqueda

Navegando, me encontré con una función que creé unos años atrás para ayudar a alguien en un foro. Ahora la publico es este espacio porque creo que puede serle útil a más de uno.
Por casualidad, me encontré con esta página www.celulaweb.net, donde un compañero de Foros del Web y de php-hispano.net publicó uno de mis aportes y me citó en los créditos (cosa infrecuente y que agradezco sobremanera). Más allá de la anécdota, creo que la función puede resultar útil y es por esta razón que la publico:

<?php
if(!function_exists('str_ireplace')) {
    function 
str_ireplace($search,$replace,$subject) {
    
$search preg_quote($search"/");
    return 
preg_replace("/".$search."/i"$replace$subject); } }
    
    function 
resaltar($palabra$texto) {
        
$aux=$reemp=str_ireplace($palabra,'%s',$texto);
        
$veces=substr_count($reemp,'%s');
        if(
$veces==0)return $texto;
        
$palabras_originales=array();
        for(
$i=0;$i<$veces;$i++){
              
$palabras_originales[]='<strong>'.substr($texto,strpos($aux,'%s'),strlen($palabra)).'</strong>';
              
$aux=substr($aux,0,strpos($aux,'%s')).$palabra.substr($aux,strlen(substr($aux,0,strpos($aux,'%s')))+2);
        }
        return 
vsprintf($reemp,$palabras_originales);
  }  
?>



La función tiene como objetivo resaltar, en los resultados de una búsqueda, la cadena que originó dichos resultados (como cuando usamos el buscador de Google).
En el código mostrado, dicha cadena se mostrará en negrita, pero es sencillo modificar la función para que muestre otros tipos de resaltado.
Home - Quiénes Somos - Portfolio - Espacio Diseño - Espacio Programación - Capacitación - Contacto - RSS - XHTML 1.0