Foros del Web » Programando para Internet » PHP »

codigo HTML en BD y sacar solo los 300 caracteres primeros

Estas en el tema de codigo HTML en BD y sacar solo los 300 caracteres primeros en el foro de PHP en Foros del Web. Bueno es es otro de mis problemas, tengo una base de datos donde metoa rticulso con imagenes y eng neral codigo HTML <p> <img> <div> ...
  #1 (permalink)  
Antiguo 28/07/2006, 16:49
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 14 años, 8 meses
Puntos: 24
codigo HTML en BD y sacar solo los 300 caracteres primeros

Bueno es es otro de mis problemas, tengo una base de datos donde metoa rticulso con imagenes y eng neral codigo HTML <p> <img> <div> y demás... sucede que en el HOME quiero desplegar los primeros 1000 carcteres de algun articulo.... el gran problem es que si hago esto con al funcion substr() me pueden quedar etiquetas HTML cortadas por ejemplo quedarme un <div > abierto debido por ejemplo a que se cierra pasados los primeros 1000 caracteres de la info que tengo en la BD de dats o peor aun quedarme en la cadena que impirmo en la pagina algo como
<div alig

al final lo cual es una etiqueta incompleta, bien pense en quitar todas las etiquetas HTML con la funcion de PHP htmlentites() sin embargo no me sirve del todo esta solucion por que hay unas noticias que tienen que ser desplegadas con sus etiquetas html, de lo contrario quedaria inentendible.

quiciera saber si hay otra solucion, si por ejemplo hay alguna funcion o clase o funcion o lo que sea para que haga lo que quiero pero que cieere al final las etiquetas que han quedado abiertas.

no se si me hago entender, de antemano muchas gracias.
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 29/07/2006, 01:07
 
Fecha de Ingreso: octubre-2005
Mensajes: 50
Antigüedad: 12 años, 1 mes
Puntos: 0
Mensaje Muy complicado !

Pues de que se puede hacer se puede pero te llevarias mucho tiempo y mucho codigo para hacer lo que quieres ya que tendrias que, definir muchos condicionales y bucles, demasiados algoritmos para algo que se puede resolver de otra manera mas facil.

Lo que te recomiendo es que crees una columna extra en tu tabla de noticias pudes llamarle "intro" o como quieras en esta vas a poner una pequeña introduccion ala noticia y en la columna "noticia" pones la noticia completa y asi tu puedes poner los caracteres que quieras 1020, 1050, 1000 o los que sean pero manteniendo la idea de la noticia.

Tendrias un resultado asi:

Ipod lanza su nuevo reproductor de mp9 con capacidad para 1000GB de almacenamiento y pantalla de muchos millones de pixeles....
[Leer Mas]
  #3 (permalink)  
Antiguo 29/07/2006, 09:59
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 12 años
Puntos: 281
tambien si lo que quieres es crear una pagina donde se muestre parte del articulo y despues poner un link de 'lea el articulo completo', lo mejor es quitar los tags de html en ese pequeNo bloque y dejarlos en el articulo completo.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #4 (permalink)  
Antiguo 30/07/2006, 01:03
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 14 años, 8 meses
Puntos: 24
graxcias juaniquillo pero es precisamente lo que no quiero hacer si te fijas en mi prgunta dije que hay fragmentos que quedarian inentendibles sin la numeración y sin ciertos aspectos del codigo html.

por otro lado Hispamaster muchas gracias pero al final me decidi ha realizar algun script sencillo, me ha quedado de 11 lineas y lo que hago es definir las etiquetas que mas problemas me podrian traer: ( las pongo en un array y con un bucle hago todo).

consiste en explorar el fragmento de codigo en busca de las etiquetas que estan en el array y determinar si hay las misma cantidad de esas etiquetas abiertas que las cerradas... ( obviamente separo cada etiqueta ) si por casualidad encuentra un tipo de etiqueta ( por ejemplo <div> ) que no este cerrada entonces al final del fragmento pongo un </div> el unico problema que le veo a este ñpequeño script esque en determinado momento las etiquetas no cerrarian en el orden correcto.

No se si me hago entender?
__________________
SEO en Medellin
  #5 (permalink)  
Antiguo 30/07/2006, 14:41
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 14 años, 11 meses
Puntos: 8
lo que yo te ofrezco es q saque toda la info, y luego elimines los TAG's HTML

haces asi:

Código PHP:
$var_con_html '<b> Hello World </a>';
$var_con_html  ereg_replace"<[^>]+>"'',$var_con_html );
echo 
$var_con_html 
  #6 (permalink)  
Antiguo 30/07/2006, 22:59
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 14 años, 8 meses
Puntos: 24
FIjate ya he dicho que eso no me sirve, y si lo fuera a hacer utilizaria la funcion correcta que proporciona PHP para ello:

strip_tags($contenido);


alguna otra idea?
__________________
SEO en Medellin
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 04:37.