Code Schnipsel – Picasa RSS Parser

flattr this!

Da ich ja relativ viele Fotos mache und die meisten auch auf meine Webseite stellen möchte war es klar, dass der Speicherplatz auf meinem Hauptserver irgendwann voll läuft. Dies ist mir letztens passiert: Ich kann kein Foto mehr hochladen (Auflösung 640*480 Pixel).
Derzeit ist es so, dass ich nur Gallerien benutzen kann, die sich in einem von meinem selbstgeschriebenen CMS vorgegebenen Ordner befinden. Das CMS generiert daraufhin noch zusätzlich die Thumbnails der Bilder, die auch auf dem Server gespeichert werden.

Wie schaffe ich es dennoch alle Gallerien auf meiner Webseite zu behalten ohne groß meinen Webspace auszureizen?
Die einzige Lösung war es, die Gallerien auf externe Server auszulagern und dann einzubinden.
Erst dachte ich an meinen Arcor Webspace…. Dieser beträgt aber nur jämmerliche 25 MB OHNE PHP (PHP brauchte ich damals auf meiner ersten Webseite nicht ), die hätten nicht lange gehalten, vielleicht eine Gallerie und nen bischen Schnappschüsse…
Als aktiver Nutzer der Google Produkten kamen mir schließlich die Picasa Web-Alben in den Sinn: Picasa Web-Alben Export wird von vielen Fotoprogrammen unterstützt (Flock-Browser, iPhoto, Google Photo Uploader, Picasa 2 und viele viele mehr) und man hat kostenlos 1GB Speicher für seine Fotos und Besucher der Alben können Kommentare hinterlassen. Dies wäre also verdammt praktisch, wenn man diese quasi fertigen Alben in seine Webseite integrieren könnte.
Da habe ich mich doch letztens sehr gefreut als ich gesehen habe, dass es für jedes Album einen RSS-Feed gibt. Dort stehen alle Bilder drin und auch die Album-Informationen.

Lange Rede, kurzer Sinn:
Ich habe mir einen kleinen Parser mit Hilfe des SimpleXML Moduls gebaut, der an Hand der RSS URL ein Array zurück gibt indem jedes Bild vorhanden ist mit seinem zugehörigen Thumbnail:

[code lang=”php”]
channel->item;

foreach($items as $item)
{
$data[‘thumb’] = preg_replace(“/(.*)description).”\n”;    // alles was keine Thumbnail URL ist aus dem Description Feld entfernen
$data[‘image’] = strval($item->enclosure[‘url’]);    // strval() konvertiert das hier entstehende Objekt in einen String

$item->;enclosure[‘url’];

$files[] = $data;
}

return $files;
}
?>[/code]

Der Code wird vielleicht demnächst noch etwas erweitert (Einbau von Kommentarfunktion).
In dem RSS-Feed gibt es noch zu jedem Bild 3 Thumbnail URLs (3 unterschiedliche Größen). Im Moment hole ich mir das Thumbnail aus der Description, was nicht so schön ist, an die anderen komme ich im Moment nicht über SimpleXML Wenn ihr Lösungsvorschläge habt, ab in die Kommentare damit, ich werde den Code dann dem entsprechend anpassen oder eine alternative anbieten.

Diese Code Schnipsel wird es in zukunft vielleicht öfter geben, demnächst: Last.FM =)

Schlagwörter: , ,

1. Juli 2008 Programmieren