Foros del Web » Programando para Internet » PHP »

resaltar las palabras en una busqueda

Estas en el tema de resaltar las palabras en una busqueda en el foro de PHP en Foros del Web. Hola a todos Estoy tratando de hacer que cuando muestro un articulo resultado de una busqueda la palabra buscada se resalte en el contenido del ...
  #1 (permalink)  
Antiguo 26/10/2004, 19:26
 
Fecha de Ingreso: febrero-2004
Mensajes: 37
Antigüedad: 13 años, 10 meses
Puntos: 0
resaltar las palabras en una busqueda

Hola a todos

Estoy tratando de hacer que cuando muestro un articulo
resultado de una busqueda la palabra buscada se resalte en el contenido del mismo.

El contenido del articulo esta en un campo Blob
entonces cuando muestro el articulo
cargo el texto en una variable
$texto y trato de usar una funcion para localizarla
$palabra=trim($clavedebusqueda);
$pos=strpos($palabra,$texto);

el problema es que aun estando la palabra no me evuelve ningun resultado correcto

Alguien ha usado las funciones para busqueda de substrings

o tiene idea de donde puedo hallar un ejemplo que me guie en la solucion

Desde ya les agradesco la atencion prestada

Suerte
Jose
  #2 (permalink)  
Antiguo 26/10/2004, 19:38
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 14 años, 7 meses
Puntos: 35
loading.....


Usa str_replace
string str_replace ( string aguja, string cad, string pajar)

En tu caso

Código PHP:
$palabra=trim($clavedebusqueda);
$resultado=str_replace($palabra,"<font color=ff0044>".$palabra."</font>",$endondebuscas); 


connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 27/10/2004, 15:23
 
Fecha de Ingreso: febrero-2004
Mensajes: 37
Antigüedad: 13 años, 10 meses
Puntos: 0
Ante todo debo agradecerte la consideracion que has tenido al responderme

Probe lo que me sugeriste y anduvo perfectamente.

gracias

saludos

José
  #4 (permalink)  
Antiguo 27/04/2006, 00:43
 
Fecha de Ingreso: julio-2003
Mensajes: 100
Antigüedad: 14 años, 4 meses
Puntos: 0
Hola, una duda... como hago que me resalte mas de una palabra? Estoy usando esta programación para que busque en la base de datos:

$cadbusca="SELECT idPag,titulo,seccion,tipo,contenido, MATCH ( titulo,contenido )
AGAINST ( '$busqueda' ) AS score FROM corecaf_contenidos WHERE
MATCH ( titulo,contenido ) AGAINST ( '$busqueda' ) ORDER BY score DESC LIMIT 50";


y cuando escribo el resultado paso la variable $busqueda en el enlace.. así:

<a href="interna.php?IDPAGINA=<?php echo $IDPAGINA ?>&MIPALABRA=<?php echo $busqueda ?>

ahora intento que las varias palabras que use para buscar se resalten, usé el código que dieron arriba y funcionó perfecto cuando es una palabra... pero no puedo hacerlo cuando son varias. trate con explode y luego resalte una por una pero no pude...

agradezco tu ayuda
  #5 (permalink)  
Antiguo 27/04/2006, 09:08
 
Fecha de Ingreso: febrero-2004
Mensajes: 37
Antigüedad: 13 años, 10 meses
Puntos: 0
yo lo hice de la siguiente manera

$buscar = "palabras de busqueda"

if(!is_null($buscar))
{
$frase=$buscar;
$claves=explode(" ",$frase);
$clave=array();
$clave=array_unique($claves);
for($i=0;$i<count($clave);$i++)
{

$palabra=trim($clave[$i]);
$palabra= strtolower($palabra);
$endondebuscas=$texto;
$resultado=str_replace($palabra,"<strong><font color=ff0044>".$palabra."</font></strong>",$endondebuscas);
$texto=$resultado;

//echo(" minusculas $palabra ");
$palabra= ucfirst($palabra);
$endondebuscas=$texto;
$resultado=str_replace($palabra,"<strong><font color=ff0044>".$palabra."</font></strong>",$endondebuscas);
$texto=$resultado;

//echo(" Primera $palabra ");
$palabra= strtoupper($palabra);
$endondebuscas=$texto;
$resultado=str_replace($palabra,"<strong><font color=ff0044>".$palabra."</font></strong>",$endondebuscas);
$texto=$resultado;

}


}

espero que te sea util

Jose
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 00:14.