Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/05/2007, 18:52
Avatar de ZydRick
ZydRick
 
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Remarcar palabras en una búsqueda

Hola amigos, tengo creado un script sencillo para realizar búsquedas que tiene la opción de resaltar en negrita las palabras que se ingresaron en el formulario, el script es este:

Código PHP:
<?php
    
include('bdconex.php');
    function 
resaltar($palabras$texto) {
        
$cambia = array();
        for(
$i=0$i count($palabras); $i++) {
            
$cambia "<strong>".$palabras[$i]."</strong>";
        }
        return 
str_replace($palabras$cambia$texto);
    }
    if (isset(
$_POST["buscar"])) {
        if(
$_POST['palabra'] == '') {
            echo 
"No has ingresado ninguna palabra a buscar <a href='javascript:history.back()'>Regresar</a>";
        }else {
            
$tabla "noticias";
            
$campo "titulo";
            
$palabra stripslashes($_POST['palabra']);
            
$palabra strip_tags($palabra);
            
$query mysql_query("SELECT * FROM $tabla WHERE $campo LIKE '%".$palabra."%'");
            
$mostrar mysql_num_rows($query);
            if(
mysql_num_rows($query) == "0") {
                echo 
"No hay coincidencias encontradas para <strong>".$palabra."</strong> <a href='javascript:history.back()'>Regresar</a>";
            }else {
?>
                Se han encontrado <strong><?=$mostrar?></strong> coincidencias para <strong><?=$palabra?></strong>
<?php            
                
while($datos mysql_fetch_array($query)) {        
                    
$texto $datos["titulo"];
                    
$pal = array($palabra);
?>            
                <ul>
                    <li><?=resaltar($pal$texto)?></li>
                </ul>
<?php
                
}
            }
        }
    }else {
?>
    <form action="buscar.php" method="post">
        <input name="palabra" type="text" />
        <input name="buscar" type="submit" value="Enviar" />
    </form>
<?php
    
}
?>
Las búsquedas funcionan correctamente, salvo una cosa, que sólo resalta las palabras que coincidan exactamente con la que se envió en el formulario, por ejemplo si yo ingreso youtube al mostrarme los resultados de la búsqueda únicamente aparecen en negrita las palabras que estén escritas igual que como se envió en el formulario y si en los resultados está YouTube pues no la resalta, alguno de ustedes sabrá como solucionar ese detalle?, gracias de antemano.

Saludos