Foros del Web » Programando para Internet » PHP »

Como saber que etiquetas quedan abiertas

Estas en el tema de Como saber que etiquetas quedan abiertas en el foro de PHP en Foros del Web. Hola buenas, me gustaría saber como se puede hacer para saber que etiquetas se quedan abiertas para cerrarlas. La cuestión es que cuando hago un ...
  #1 (permalink)  
Antiguo 12/12/2008, 02:09
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 17 años, 10 meses
Puntos: 2
Como saber que etiquetas quedan abiertas

Hola buenas, me gustaría saber como se puede hacer para saber que etiquetas se quedan abiertas para cerrarlas.

La cuestión es que cuando hago un recorte de una noticia que aparece en una web, le marco que cantidad de palabras quiero qeu aparezcan en la página de inicio antes de entrar a la noticia completa, el problema viene cuando hay etiquetas html del tipo por ejemplo strong que como cuanta como si fuese una palabra normalmente se me queda abierta por lo que todo lo que hay después de esa palabra en negrita se me queda en negrita, así que la idea es saber que etiquetas se quedan abiertas y cerrarlas.

Quizás haya una mejor forma de hacer esto, alguien sabe de lo que estoy hablando? o me explico bastante mal, jeje?

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #2 (permalink)  
Antiguo 12/12/2008, 02:36
 
Fecha de Ingreso: diciembre-2003
Ubicación: Salamanca
Mensajes: 123
Antigüedad: 16 años
Puntos: 3
Respuesta: Como saber que etiquetas quedan abiertas

Se me ocurre que puedes recorrer el texto e ir guardando en una matriz las etiquetas que vayan apareciendo.
Cuando apaezca la de cierre la eliminas de la matriz y al terminar de recorrer el texto, las que queden es que están abiertas.
Luego debes decidir que hacer con cada una de ellas (si cerrarlas o no).
  #3 (permalink)  
Antiguo 12/12/2008, 03:15
Avatar de david_f  
Fecha de Ingreso: mayo-2007
Ubicación: Santiago De Los Caballeros, Santiago, Dominican Republic, Dominican Republic
Mensajes: 52
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: Como saber que etiquetas quedan abiertas

Podrias mantener en un arreglo las etiquetas que se permitan y luego contar las etiquetas abiertas vs la cantidad de cerradas, si las cantidades son diferentes buscas la ultima, cuentas la cantidad de caracteres que tiene mas 1 por el /, recortas la salida y pegas el cierre. Esto es considerando que la etiqueta esta propiamente abierta y no se corta.

Si la etiqueta se corta, revisa si contiene < antes del espacio anterior y solo te queda eliminarla.
  #4 (permalink)  
Antiguo 12/12/2008, 04:08
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Como saber que etiquetas quedan abiertas

Hola buenas, gracias por responder, bueno lo que s eme ocurre hacer es hacerlo con expresiones regulares, pero no me recoge la etiqueta, poruqe hago la comprobacion de cada palabra que exista después de un espacio:

Código PHP:
$texto "<p>Hi, my last question is out of date, but I have next one :) If I use autocompleter in multiple: true option then my postVar: cityTip is use for all string after coma <strong>example:</strong>";

$comprobartexto explode(' ',$texto);

for ( 
$idi=0$idi count($comprobartexto); $idi++){ 

    if (
ereg"</?[a-z][a-z0-9]*[^<>]*>"$comprobartexto[$idi] ) ) {
        
$etiquetas .= $comprobartexto[$idi];
    } 
    
}

echo 
$etiquetas
Alguna idea de como seguir?

Saludos
__________________
asp, php, .net, adaptandose a las necesidades
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 19:31.