martes, 5 de julio de 2011

Flamante editor en GenBetaDev

Después de dos meses dejándome la piel en la sección dedicada a Windows Azure de GenbetaDev, ayer me ofrecieron pasarme a editor en la página madre.

Y después de pensarlo unos cuantos milisegundos, me he apuntado al carro.

Asique seguiré publicando en este Blog mis truquillos para mi solo y mis opiniones personales sobre la temática de mi blog. Pero también me podrás leer en GenbetaDev.

Obtener el src de una imagen con php

Estoy metido en un interesante proyecto de aplicaciones Web para dispositivos móviles, incluyendo tabletos; y lo estoy realizando en php (a pesar de mi disgusto).

Los datos vienen de fuentes RSS y tengo que maquetar estos páginas html para que puedan ser visionadas en las pantallitas de los móviles.

Y lo primero que he de hacer es extraer las imágenes de la fuente RSS para redimensionarla y almacenarlas en la caché (sea con html5 o en el servidor).

Al principio me lié tratando el html como si fuera un string, con búsquedas y funciones de substring. Pero aquí me he encontrado una solución mucho más elegante: usar las funciones de XMLDom de PHP.

// Dado un documento html, obtiene las imagenes que contiene.
// El número de imágen válida es para cojer una específica (acuerdate que empieza por cero).
// Si se envía 99 no descarta ninguna.
function sacaImagen($CuerpoDelMensaje, $numeroDeImagenValida)
{
//$posicionFinal = strpos($CuerpoDelMensaje, "<br />");
//$imagen = substr($CuerpoDelMensaje, 0, $posicionFinal);
//echo $imagen;
$doc=new DOMDocument();
$doc->loadHTML($CuerpoDelMensaje);
$xml=simplexml_import_dom($doc);
$images=$xml->xpath('//img');

$numeroImagen = 0;
foreach ($images as $img) {

if(($numeroImagen == $numeroDeImagenValida) OR ($numeroDeImagenValida == 99))
{
echo '<img src="'. $img['src'] . '" alt="' . $img['alt'] . '" title="' . $img['title'] . '" />';
}
$numeroImagen++;
}
}


Lo mejor es que lo puedo utilizar con cualquier tag html para obtener cualquier atributo de una forma muy cómoda.