Foros del Web » Programando para Internet » PHP »

buscar texto en html

Estas en el tema de buscar texto en html en el foro de PHP en Foros del Web. Estoy buscando cadenas y subcadenas y todo perfectamente. El problema es que el contenido donde se busca tiente etiquetas html y lo que deseo es ...
  #1 (permalink)  
Antiguo 06/04/2009, 07:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 1 mes
Puntos: 4
buscar texto en html

Estoy buscando cadenas y subcadenas y todo perfectamente. El problema es que el contenido donde se busca tiente etiquetas html y lo que deseo es recortar una porción de texto limpio de estas etiquetas y mostrar el resultado.

Si tengo un código de búsqueda:
Código HTML:
<div style="text-align: justify;"><span style="color: rgb(128, 128, 128);"><span style="font-size: x-small;"><span style="font-family: Verdana;">Conscientes de la necesidad de diversificación en nuestro sector, y con el claro objeto de ofrecer a todos&nbsp;nuestros clientes,&nbsp;un&nbsp; catálogo más&nbsp; amplio y profesional, hemos creado una nueva línea comercial: </span></span></span><span style="color: rgb(128, 128, 128);"><span style="font-size: x-small;"><span style="font-family: Verdana;">la comercialización de productos sport y tuning para el automóvil (sección Motorsport)</span></span></span></div>
<div style="text-align: justify;"><span style="color: rgb(128, 128, 128);"><span style="font-size: x-small;"><span style="font-family: Verdana;">Con la misma excelencia <img border="0" src="img.jpg"> de servicio y todas las garantías que nos han convertido en una empresa líder en el sector.</span></span></span></div> 
y busco: catálogo excelencia

querria que me diese
"y con el claro objeto de ofrecer a todos&nbsp;nuestros clientes,&nbsp;un&nbsp; catálogo más&nbsp; amplio y"

pero sin los caracteres de escape &nbsp; o eliminarlos para que no me cortase el texto desde donde estableciese el corte a mostrar

En el caso de excelencia hay cerca la etiqueta img "excelencia <img border="0" src="img.jpg">", y como sólo quiero texto puesto que no quiero mostrarlo en la lista de resultados o peor que en mi criterio de corte me destroce al etiqueta.

Los resultados los muestro a partir de la búsqueda en una tabla de contenidos en la base de datos que almaceno a través del editor fckeditor.

A ver si me dais pistas.
  #2 (permalink)  
Antiguo 06/04/2009, 08:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: buscar texto en html

Usa strip_tags para limpiar las cadenas de sus entidades HTML y entonces realizas la búsqueda.

Saludos.
  #3 (permalink)  
Antiguo 06/04/2009, 09:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: buscar texto en html

pruebo inmediatamente pero creo tiene sin duda muy buena pinta. Te cuento y gracias.
  #4 (permalink)  
Antiguo 06/04/2009, 09:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: buscar texto en html

bufff, perfecto, una simple función strip_tags y todo arreglado.
otra duda, ;)

Bueno. Hago la búsqueda de las palabras en un string, y las separo con explode, es decir

"en un lugar de la mancha cuyo nombre no puedo acordarme en un lugar de la mancha cuyo nombre no puedo acordarme en un lugar de la mancha cuyo nombre no puedo acordarme en un lugar de la mancha cuyo nombre no puedo acordarme en un lugar de la mancha cuyo nombre no puedo acordarme ";

$cadenabusca="lugar mancha";
$arraybusca=explode(" ",$cadenabusca);
Y mediante otra función marco perfectamente el sombreado de la búsqueda.
Hasta aquí bien.

Pregunto: si el texto es bastante extenso me compensaría cortar algo así:

Resultado uno
"...un lugar de la mancha cuyo......un lugar de la mancha cuyo......un lugar de la mancha cuyo..."

Lo digo porque hay contenidos bastante largos. Puedo cortar pero corro el riesgo de que no se vea la palabra resaltada. No sé si me explico. Alguna Sugerencia
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 01:17.