Foros del Web » Programando para Internet » PHP »

resaltar palabras de criterio de busqueda

Estas en el tema de resaltar palabras de criterio de busqueda en el foro de PHP en Foros del Web. hola, disculpen la molestia, tengo la siguiente duda o problema... imaginen que deseo hacer una busqueda con las siguientes palabras de criterio: "php mysql". y ...
  #1 (permalink)  
Antiguo 28/09/2008, 06:16
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta resaltar palabras de criterio de busqueda

hola, disculpen la molestia, tengo la siguiente duda o problema... imaginen que deseo hacer una busqueda con las siguientes palabras de criterio: "php mysql".

y bueno, luego de realizar la consulta obtengo el juego de registros y muestro el resultado. en eso no hay dudas...

la duda viene ahora:

¿como podria hacer para que el resultado se pinten de color negrita las palabras de criterio?, por ejemplo:

resultado:
PHP 5 y MySQL 5
Creación de un Portal con PHP y MySQL
PHP 4.X y 5.X y MySQL Server para versiones 3.2.3, 4.x y 5.x
Macromedia Dreamwaever MX 2004: Desarrollo de Páginas Web Dinámicas con PHP y MySQL

espero puedan ayudarme, tengo las siguientes soluciones:
almacenar los criterios de busqueda php y mysql en un arreglo, y luego comparar por cada resultado si existe alguna de las palabras de criterio en el arreglo que se le agrege el <strong>palabra</strong>...

pero como puego almacenar la oración en un arreglo por palabras separadas, y luego comparar?? alguien tiene alguna sugerencia??, existe alguna función específica para eso??, espero me ayuden, gracias! n_n
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #2 (permalink)  
Antiguo 28/09/2008, 06:42
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: resaltar palabras de criterio de busqueda

encontre esta solución, pero solo es para una palabra, y bueno, este caso no es muy dificil, mi problema es con varias palabras, alguna ayuda???
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #3 (permalink)  
Antiguo 28/09/2008, 09:33
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: resaltar palabras de criterio de busqueda

esto no sirve? No lo lei detenidamente, pero creo que puede ser lo que andas buscando....

si es mas de lo mismo, perdon! es lo unico que encontre hasta ahora!
  #4 (permalink)  
Antiguo 28/09/2008, 09:36
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: resaltar palabras de criterio de busqueda

aca encontre otra cosa.. por si no tienes PHP 5... una alternativa interesante.

avisame si te sirve alguna!

aca va otro link! y este otro!
  #5 (permalink)  
Antiguo 28/09/2008, 11:02
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: resaltar palabras de criterio de busqueda

Cita:
Iniciado por hector2c Ver Mensaje
hola, disculpen la molestia, tengo la siguiente duda o problema... imaginen que deseo hacer una busqueda con las siguientes palabras de criterio: "php mysql".

y bueno, luego de realizar la consulta obtengo el juego de registros y muestro el resultado. en eso no hay dudas...

la duda viene ahora:

¿como podria hacer para que el resultado se pinten de color negrita las palabras de criterio?, por ejemplo:

resultado:
PHP 5 y MySQL 5
Creación de un Portal con PHP y MySQL
PHP 4.X y 5.X y MySQL Server para versiones 3.2.3, 4.x y 5.x
Macromedia Dreamwaever MX 2004: Desarrollo de Páginas Web Dinámicas con PHP y MySQL

espero puedan ayudarme, tengo las siguientes soluciones:
almacenar los criterios de busqueda php y mysql en un arreglo, y luego comparar por cada resultado si existe alguna de las palabras de criterio en el arreglo que se le agrege el <strong>palabra</strong>...

pero como puego almacenar la oración en un arreglo por palabras separadas, y luego comparar?? alguien tiene alguna sugerencia??, existe alguna función específica para eso??, espero me ayuden, gracias! n_n


puedes usar estas dos funciones
explode: separa una cadena de texto por un caracter dado (para separar lo que buscas por los espacios, te devuelve un array)
str_ireplace: para reemplazar texto, por ejemplo, reemplazas la palabra a buscar por <strong>$palabra</strong> o similar

debes tener en cuenta que si haces eso en un codigo que contenga etiquetas html, y por lo que sea, lo que buscas es esta cadena 'href' te destrozara los links, con lo que te recomiendo que antes limpies la cadena donde buscar con strip_tags y similares funciones.

un saludo.
  #6 (permalink)  
Antiguo 28/09/2008, 11:16
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: resaltar palabras de criterio de busqueda

prueba esta funcion que he encontrado: http://aidanlister.com/repos/v/funct..._highlight.php

Perdon por el doble post, le he dado a editar arriba, y voy y escribo en Respuesta rápida :)
  #7 (permalink)  
Antiguo 28/09/2008, 14:23
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: resaltar palabras de criterio de busqueda

wow, gracias por la exploción de ayudas!!!, todas me sirvieron para conocer algo mas de php, la siguiente función fue la que me agrado mucho!...

Código PHP:
function resaltar($buscar$texto) { 
    
$claves explode(" ",$buscar); 
    
$clave array_unique($claves);
    
$num count($clave); 
    for(
$i=0$i $num$i++) 
        
$texto preg_replace("/(".trim($clave[$i]).")/i","<strong>\\1</strong>",$texto);
    return 
$texto

ahora la uso de este modo:

Código PHP:
<?=resaltar($_POST['tit_exi'], $rs_exi['tit_exi'])?>
todo anda muy bien, no diferencia mayusculas de minuscula, todo muy bien, el problema es cuando uso tildes, no las acepta, no las pinta...

existira alguna variante a preg_replace??, espero me puedan ayudar, uso utf-8, con mssql (mssql usa iso, pero convierto los caracteres, asi que no hay problema)...

espero puedan ayudarme, muchas, gracias por su ayuda, el único problema son las tildes T_T
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #8 (permalink)  
Antiguo 28/09/2008, 21:17
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: resaltar palabras de criterio de busqueda

que puedo modificar para que no diferencia no tan solo las mayusculas y minusculas, si no tambien las tíldes T_T
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #9 (permalink)  
Antiguo 29/09/2008, 05:37
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: resaltar palabras de criterio de busqueda

mmmmmmmmmm, a muchos les puede servir esta solución, por favor, si alguien tiene alguna respuesta, se lo agradeceria enormemente....
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #10 (permalink)  
Antiguo 29/09/2008, 07:45
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: resaltar palabras de criterio de busqueda

Implementa esta función, a ver si hay suerte:

Código PHP:
function reemplazar($text$words){
        foreach (
$words as $word){
                
$word preg_quote($word);
                
$text preg_replace("/\b($word)\b/i"'<strong">\1</strong>'$text);
        }
        return 
$text;
}

$palabras_que_buscar explode($palabras);
echo 
reemplazar($texto_donde_buscar$palabras_que_buscar); 
Dinos si te funcionó
  #11 (permalink)  
Antiguo 29/09/2008, 08:38
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: resaltar palabras de criterio de busqueda

Hola...

Para las tildes y caracteres especiales, utf8_encode($cadena)

Saludos...
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #12 (permalink)  
Antiguo 29/09/2008, 09:33
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: resaltar palabras de criterio de busqueda

he tenido problemas con el código, agrege parametros a la función:


Código PHP:
<?php
    
function reemplazar($text$words){ 
        foreach (
$words as $word){ 
            
$word preg_quote($word); 
            
$text preg_replace("/\b($word)\b/i"'<strong">\1</strong>'$text); 
        } 
        return 
$text
    } 
    
$palabras "matemática mundo";
    
$texto_donde_buscar "el mundo de las matemáticas";
    
$palabras_que_buscar explode($palabras); 
    echo 
reemplazar($texto_donde_buscar$palabras_que_buscar);  
?>
estos son los errores en las siguientes lineas:
Warning: Wrong parameter count for explode() in C:\AppServ\www\biblioteca\Untitled-2.php on line 19

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\biblioteca\Untitled-2.php on line 11
el mundo de las matemáticas
la linea 19 es:
$palabras_que_buscar = explode($palabras);

la linea 11 es:
foreach ($words as $word){


he cometido algún error??, espero me ayuden, muchas gracias!!!!
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #13 (permalink)  
Antiguo 29/09/2008, 09:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: resaltar palabras de criterio de busqueda

lee la documentación, por favor....

Referencia:

http://php.net/explode

la función explode necesita dos parámetros, el primero... el separador, y el segundo... la cadena

PDTA:

lee la documentación, por favor.... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 29/09/2008, 12:17
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: resaltar palabras de criterio de busqueda

Cita:
Iniciado por hector2c Ver Mensaje
he tenido problemas con el código, agrege parametros a la función:


Código PHP:
<?php
    
function reemplazar($text$words){ 
        foreach (
$words as $word){ 
            
$word preg_quote($word); 
            
$text preg_replace("/\b($word)\b/i"'<strong">\1</strong>'$text); 
        } 
        return 
$text
    } 
    
$palabras "matemática mundo";
    
$texto_donde_buscar "el mundo de las matemáticas";
    
$palabras_que_buscar explode($palabras); 
    echo 
reemplazar($texto_donde_buscar$palabras_que_buscar);  
?>
estos son los errores en las siguientes lineas:
Warning: Wrong parameter count for explode() in C:\AppServ\www\biblioteca\Untitled-2.php on line 19

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\biblioteca\Untitled-2.php on line 11
el mundo de las matemáticas
la linea 19 es:
$palabras_que_buscar = explode($palabras);

la linea 11 es:
foreach ($words as $word){


he cometido algún error??, espero me ayuden, muchas gracias!!!!
pensé que te molestarias en mirar la documentacion de las funciones que te hemos dicho y no conocias.
Como ha dicho pateketrueke:
lee la documentación, por favor.... suerte!



saludos!
  #15 (permalink)  
Antiguo 29/09/2008, 14:59
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: resaltar palabras de criterio de busqueda

disculpen, eso de explode no le preste atención, una vez agregado el criterio de separación todo anda bien, pero aun asi no acepta tildes y tambien deja de trabajar con mayusculas...

no soy bueno con el manejo de cadenas, espero comprendan, lei algo sobre expresiones regulares, pero soy malo con el manejo de cadenas... espero comprendan mis conocimientos básicos...

vamos, no sean malos conmigo que he ayudado tanto en este foro...

sobre expresiones regulares, encontre [[:alnum:]], recuerdo que lei algo sobre eso, pero perdi el ejemplo, por mi parte seguire buscando ese ejemplo, pero por favor, si tienen alguna ayuda, se los agradeceria...
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #16 (permalink)  
Antiguo 20/10/2008, 19:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: resaltar palabras de criterio de busqueda

resaltar en cualquier parte de la cadena asi contenga o no contenga tilde el criterio ingresado.

Como se hace?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:31.