Pregunta

Estoy buscando buenos métodos para manipular HTML en PHP.Por ejemplo, el problema que tengo actualmente es el HTML con formato incorrecto.

Recibo una entrada que se parece a esta:

<div>This is some <b>text

Como habrás notado, al HTML le faltan etiquetas de cierre.Podría usar expresiones regulares o un analizador XML para resolver este problema.Sin embargo, es probable que tenga que realizar otras manipulaciones DOM en el futuro.Me pregunto si existen buenas bibliotecas PHP que manejen la manipulación DOM de manera similar a como Javascript maneja la manipulación DOM.

¿Fue útil?

Solución

PHP tiene una extensión PECL que le da acceso a las funciones de HTML Tidy.Tidy es una biblioteca bastante poderosa que debería poder tomar código como ese y cerrar etiquetas de manera inteligente.

Lo uso para limpiar XML y HTML con formato incorrecto que me envía un sistema de anuncios clasificados antes de la importación.

Otros consejos

Descubrí que PHP Simple HTML DOM es la biblioteca más útil y sencilla hasta el momento.Mejor que PECL, diría yo.

He escrito un artículo sobre cómo usarlo para extraer fechas de giras de artistas de myspace (sólo un ejemplo.) Aquí hay un enlace al Analizador dom html simple de php.

La biblioteca DOM que ahora está integrada puede resolver este problema fácilmente.El método loadHTML aceptará XML con formato incorrecto, mientras que el método load no.

$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>

Para manipular el DOM creo que lo que estás buscando es este.Solía ​​​​analizar documentos HTML de la web y funcionó bien para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top