2008-08-26 13 views
9

Estoy buscando buenos métodos de manipulación de HTML en PHP. Por ejemplo, el problema que tengo actualmente es lidiar con html malformado.DOM manipulación en PHP

que estoy recibiendo de entrada que se ve algo como esto:

<div>This is some <b>text 

Como habrá notado, el HTML no se encuentra etiquetas de cierre. Podría usar regex o un analizador XML para resolver este problema. Sin embargo, es probable que tenga que hacer otras manipulaciones DOM en el futuro. Me pregunto si hay algunas buenas bibliotecas de PHP que manejen la manipulación DOM similar a cómo Javascript trata con la manipulación de DOM.

+0

correría incorrecto HTML a través Purificador HTML antes de hacer cualquier otra cosa con él. – TRiG

Respuesta

1

Para manipular el DOM creo que lo que estás buscando es this. He utilizado para analizar documentos HTML desde la web y funcionó bien para mí.

3

La biblioteca DOM que ahora está incorporado puede resolver este problema fácilmente. El método loadHTML aceptará XML mal formado mientras que el método de carga no lo hará.

$d = new DOMDocument; 
$d->loadHTML('<div>This is some <b>text'); 
$d->saveHTML(); 

La salida será:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html> 
    <body> 
    <div>This is some <b>text</b></div> 
    </body> 
</html> 
+0

Ingresé una respuesta similar con un poco más sobre la codificación de cadenas y cómo extraer un fragmento de documento [aquí] (http://stackoverflow.com/questions/8500390/fixing-unclosed-html-tags/43212965#43212965) –

Cuestiones relacionadas