Necesito crear un script de PHP que liste todas las imágenes de mi sitio web con su título y texto alternativo, si existe.
Ya he desarrollado la parte que encuentra todos los archivos HTML del sitio y los procesa para extraer las imágenes. Pero ahora estoy atascado en la parte que debe extraer el valor de los atributos src
, title
y alt
. Las imágenes de mi sitio tienen esta pinta:
<img src="/image/fluffybunny.jpg" title="Harvey the bunny" alt="Cute little fluffy bunny" />
Supongo que tendré que utilizar expresiones regulares para extraer los valores de los atributos, pero no se muy bien cómo hacerlo de manera elegante.
Respuestas
Utilizar expresiones regulares podría funcionar en algunos casos, pero es casi imposible hacerlo funcionar sin error en todos los casos. Recuerda que el código HTML podría estar mal formado (a propósito o sin querer), por lo que hacer una expresión regular robusta que funcione siempre es casi imposible.
Lo mejor es utilizar una herramienta que procese HTML/XML y después del procesamiento, obtener el valor de los atributos de los nodos de tipo <img>
. Con PHP esto es facilísimo:
$html = file_get_contents('/ruta/del/archivo.html'); $doc = new DOMDocument(); @$doc->loadHTML($html); $imagenes = $doc->getElementsByTagName('img'); foreach ($imagenes as $imagen) { $alt = $imagen->getAttribute('alt'); $src = $imagen->getAttribute('src'); $title = $imagen->getAttribute('title'); }
@librosweb