<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>B-Loch sein Blog &#187; Code Schnipsel</title>
	<atom:link href="http://blog.cbeloch.de/category/code-schnipsel/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.cbeloch.de</link>
	<description>Willkommen auf meinem Blog. Hier kommt der ganze Müll zusammen.</description>
	<lastBuildDate>Sun, 05 Sep 2010 17:06:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[PHP] RSS-Feed mit SimpleXML Parsen</title>
		<link>http://blog.cbeloch.de/2009/04/php-rss-feed-mit-simplexml-parsen.html</link>
		<comments>http://blog.cbeloch.de/2009/04/php-rss-feed-mit-simplexml-parsen.html#comments</comments>
		<pubDate>Wed, 15 Apr 2009 08:31:35 +0000</pubDate>
		<dc:creator>Christopher Beloch</dc:creator>
				<category><![CDATA[Code Schnipsel]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.cbeloch.de/?p=240</guid>
		<description><![CDATA[In PHP kann man sehr leicht einen RSS Feed parsen, mit diesem Codeschnipsel möchte ich euch zeigen wie. In PHP 5 ist eine Library enthalten, die sich SimpleXML nennt und da ein RSS Feed an sich nichts anderes ist als eine XML Datei machen wir uns diese Library zu nutzen. &#60;?php $rss_feed = simplexml_load_file(&#8220;http://www.spiegel.de/spam/index.rss&#8221;); // [...]]]></description>
			<content:encoded><![CDATA[<p>In PHP kann man sehr leicht einen RSS Feed parsen, mit diesem Codeschnipsel möchte ich euch zeigen wie.<br />
In <strong>PHP 5</strong> ist eine Library enthalten, die sich <strong><a href="http://de3.php.net/simple_xml" target="_blank">SimpleXML</a></strong> nennt und da ein RSS Feed an sich nichts anderes ist als eine XML Datei machen wir uns diese Library zu nutzen.</p>
<blockquote><p>&lt;?php<br />
$rss_feed = simplexml_load_file(&#8220;http://www.spiegel.de/spam/index.rss&#8221;); // URL zum RSS-Feed, hier: Spiegel Satire (SPAM)<br />
$cfg_news_count = 4; // Anzahl der Nachrichten die Angezeigt werden sollen</p>
<p>$feed_info = $rss_feed-&gt;channel;<br />
$feed_news_items = $feed_info-&gt;item; // Dies ist ein Array mit allen Newseintraegen im Feed</p>
<p>/*<br />
Quellen Titel:  $feed_info-&gt;title  // Titel der Quelle<br />
Quellen Link:  $feed_info-&gt;link  // URL zur Hauptseite der Quelle<br />
Beschreibung: $feed_info-&gt;description  // Beschreibung der Quelle oder auch Art der Nachrichten<br />
*/</p>
<p>$i = 0; // kleiner Zaehler der die Anzahl der Nachrichten mitzaehlt</p>
<p>foreach($feed_news_items as $news_data) // Jeden Newseintrag im Array einzeln in einer Schleife durchgehen<br />
{<br />
/*<br />
News Titel:  $news_data-&gt;title  // Titel der Nachricht<br />
News Link:  $news_data-&gt;link  // URL zur Quelle (Nachricht selber)<br />
News Text:  $news_data-&gt;description  // Der eigentliche Nachrichten Text (Zusammenfassung)<br />
News Datum:  $news_data-&gt;pubDate  // Zeitpunkt der Veroeffentlichung dieser Meldung<br />
*/</p>
<p>/*** Ab hier die Ausgaben der Elemente ***/</p>
<p>/* &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. */</p>
<p>/*** Hier endet die Ausgabe der Elemente ***/</p>
<p>$i++; // Nachrichtenzaehler um 1 erhoehen<br />
if($i == $cfg_news_count) // kontrollieren ob das Limit erreicht wurde<br />
break; // Schleife Abbrechen<br />
}<br />
?&gt;</p></blockquote>
<p>Zu Beginn wird erstmal der RSS Feed eingelesen und eine Variable bestimmt die die Anzahl der maximal dargestellten Einträge limitiert.<br />
Daraufhin werden die wichtigsten Variablen für den Feed festgelegt.<br />
In den Kommentarzeilen sind jeweils Variablennamen und zugehörige Beschreibungen benannt, der Rest sollte aus den zugehörigen Kommentaren hervorgehen.</p>
<p>Dieses Beispiel gilt für einen <strong>validen</strong> RSS 2.0 Feed, bei einem Atom Feed oder normalen XML Dateien können sich die Bezeichnungen der Variablen ggf. ändern.<br />
Wenn man nicht genau weiß, wie die Variablen heißen, kann man sich mit einem <strong>print_r(simplexml_load_file(&#8220;http://www.url.zum/feed.xml&#8221;))</strong> sehr schnell behelfen um die Objektzeiger und Variablennamen zu finden.</p>
<div class="shr-publisher-240"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.cbeloch.de/2009/04/php-rss-feed-mit-simplexml-parsen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Schnipsel &#8211; Picasa RSS Parser</title>
		<link>http://blog.cbeloch.de/2008/07/code-schnipsel-picasa-rss-parser.html</link>
		<comments>http://blog.cbeloch.de/2008/07/code-schnipsel-picasa-rss-parser.html#comments</comments>
		<pubDate>Tue, 01 Jul 2008 19:37:00 +0000</pubDate>
		<dc:creator>Christopher Beloch</dc:creator>
				<category><![CDATA[Code Schnipsel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Picasa]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=120</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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).<br />
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.</p>
<p>Wie schaffe ich es dennoch alle Gallerien auf meiner Webseite zu behalten ohne groß meinen Webspace auszureizen?<br />
Die einzige Lösung war es, die Gallerien auf externe Server auszulagern und dann einzubinden.<br />
Erst dachte ich an meinen Arcor Webspace&#8230;. Dieser beträgt aber nur jämmerliche 25 MB OHNE PHP (PHP brauchte ich damals auf meiner ersten Webseite nicht <img src='http://blog.cbeloch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ), die hätten nicht lange gehalten, vielleicht eine Gallerie und nen bischen Schnappschüsse&#8230;<br />
Als aktiver Nutzer der <span style="font-weight: bold;">Google Produkten</span> kamen mir schließlich die <span style="font-weight: bold;">Picasa Web-Alben</span> 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 <span style="font-weight: bold;">kostenlos 1GB Speicher für seine Fotos</span> 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.<br />
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.</p>
<p>Lange Rede, kurzer Sinn:<br />
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:</p>
<p>[code lang="php"]<br />
<?php<br />
function picasapictures($feedurl)<br />
{<br />
$rss = simplexml_load_file($feedurl);</p>
<p>$items = $rss->channel->item;</p>
<p>foreach($items as $item)<br />
{<br />
$data['thumb'] = preg_replace("/(.*)<img(.*)src=\"(.*?)\"(.*)/si", "\\3", $item->description)."\n";    // alles was keine Thumbnail URL ist aus dem Description Feld entfernen<br />
$data['image'] = strval($item->enclosure['url']);    // strval() konvertiert das hier entstehende Objekt in einen String</p>
<p>$item->;enclosure['url'];</p>
<p>$files[] = $data;<br />
}</p>
<p>return $files;<br />
}<br />
?>[/code]</p>
<p>Der Code wird vielleicht demnächst noch etwas erweitert (Einbau von Kommentarfunktion).<br />
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 <img src='http://blog.cbeloch.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Wenn ihr Lösungsvorschläge habt, ab in die Kommentare damit, ich werde den Code dann dem entsprechend anpassen oder eine alternative anbieten.</p>
<p>Diese Code Schnipsel wird es in zukunft vielleicht öfter geben, demnächst: Last.FM =)</p>
<div class="shr-publisher-120"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.cbeloch.de/2008/07/code-schnipsel-picasa-rss-parser.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
