La clase DOMDocument de PHP

Introducción a la clase DOMDocument

Hopper

archivado en: PHP/AJAX / 18 mayo, 2014

A mí me gustan mucho las expresiones regulares en PHP, sin embargo, cuando estamos tratando un contenido web, una página HTML al uso, puede resultar más rápido y cómodo emplear la clase DOMDocument, que, en esencia, permite tratar con PHP un documento o fragmento HTML y XML con métodos similares a las funciones habituales de javaScript.

Puede ser muy útil para tratar el texto que nos llega desde algún editor en un CMS, como el tiny o el ckeditor, antes de guardarlo en la base de datos. Imaginemos, por ejemplo, que necesitamos revisar antes si todas las imágenes tienen su atributo alt para ponerle uno por defecto si no está especificado. El texto de partida, lo que nos llega desde el editor, podría ser algo como esto:

<?php

$texto = "<p>Texto por aquí</p>

<img src='imagen1.jpg'/>
<p>He visto cosas que vosotros no creeríais: Atacar naves en llamas más allá de Orión. He visto Rayos-C brillar en la oscuridad cerca de la puerta de Tannhäuser. Todos esos momentos se perderán en el tiempo... como lágrimas en la lluvia.  Es hora de morir.</p>

<img src='imagen2.jpg' />

<p>Texto por allá</p>";

?>

Y para poner unos alts sería tan sencillo como hacer algo así:

/* Creamos un objeto, que sirve de nodo raíz */

$doc = new DOMDocument('1.0', 'UTF-8');

/* Cargamos ahí nuestro texto HTML codificándolo como UTF-8
(esto último, opcional) */

$doc->loadHTML('<?xml encoding="UTF-8">' . $texto);

/* Seleccionamos los elementos img */

$imagenes = $doc->getElementsByTagName('img');

foreach ($imagenes as $imagen) {

$alt = $imagen->getAttribute('alt');

/* Si el atributo alt está vacío o no existe...*/

if ($alt == '') {

/* Seleccionamos la ruta */

$nombre = $imagen->getAttribute('src');

/* Lo insertamos en el alt */

$imagen->setAttribute('alt', 'imagen: '.$nombre);

}

}

/* Guardamos o mostramos el 'documento' HTML ya tratado como una cadena */

$texto = $doc->saveHTML();

?>

Chulo, no?

|| Tags:

valoración de los lectores sobre La clase DOMDocument de PHP

  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • estrellica valoración positiva
  • 4.7 sobre 5 (3 votos)

¿Te ha parecido útil o interesante esta entrada?
dormido, valoración 1 nadapensativo, valoración 2 un poco sonrisa, valoración 3 a medias guiño, valoración 4 bastante aplauso, valoración 5 mucho

Tú opinión es muy importante, gracias por compartirla!

Los comentarios están cerrados.