<?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>/dev/blog/</title>
	<atom:link href="http://badknight.at/feed/" rel="self" type="application/rss+xml" />
	<link>http://badknight.at</link>
	<description>Die Welt eines Freaks :D</description>
	<lastBuildDate>Wed, 05 May 2010 14:55:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apache Software Foundation</title>
		<link>http://badknight.at/2010/05/</link>
		<comments>http://badknight.at/2010/05/#comments</comments>
		<pubDate>Wed, 05 May 2010 14:55:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=91</guid>
		<description><![CDATA[Wenn man heute von "Apache" redet meint man in den meisten fällen natürlich den Webserver von Apache, doch das die Apache Foundation mehr zu bieten hat als bloß das eine Projekt, wissen leider immer noch zu wenig!
Aus langeweile hab ich mir mal die gesamten Projekte der Foundation durchgesehen und da mal ein paar rausgesucht und [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man heute von "Apache" redet meint man in den meisten fällen natürlich den <a href="http://httpd.apache.org/" target="_blank">Webserver </a>von Apache, doch das die <a href="http://projects.apache.org/" target="_blank">Apache Foundation</a> mehr zu bieten hat als bloß das eine Projekt, wissen leider immer noch zu wenig!</p>
<p>Aus langeweile hab ich mir mal die gesamten Projekte der Foundation durchgesehen und da mal ein paar rausgesucht und möchte sie euch ein bisschenbeschreiben!</p>
<p><strong><a href="http://logging.apache.org/" target="_blank">Apache Logging Services</a></strong></p>
<p><strong> </strong>Mit  Hilfe der darin enthaltenen <a title="Framework" href="http://de.wikipedia.org/wiki/Framework" target="_blank">Frameworks</a> kann man sehr einfach in seine Software sehr komplexe <a title="Logging" href="http://de.wikipedia.org/wiki/Logging" target="_blank">Logging</a>-Mechanismen einbauen. <a title="Log4j" href="http://de.wikipedia.org/wiki/Log4j" target="_blank">Log4j</a> ist  ein wichtiges Unterprojekt davon.</p>
<p>"Log4j" wird sicher den einen oder anderen Programmierer was sagen.. doch meistens nur im bereich JAVA, aber es gibt Log4j auch für PHP:<br />
<a href="http://logging.apache.org/log4php/index.html" target="_blank">klick mich</a></p>
<p><a href="http://activemq.apache.org" target="_blank"><strong>ActiveMQ</strong></a></p>
<p>ActiveMQ ist ein <a href="http://de.wikipedia.org/wiki/Java_Message_Service" target="_blank">Java Message Service</a> für weitere Infos lest euch bei Wikipedia durch was ein Message Service ist <img src='http://badknight.at/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><a href="http://mina.apache.org/" target="_blank">Apache MINA</a></strong></p>
<p>MINA ist ein Framework für Netzwerk-basierte Anwendungen. Es stellt eine ereignisbasierte Programmierschnittstelle für  asynchrone Kommunikation über Transportprotokolle wie TCP/IP and UDP/IP und Java NIO zur  Verfügung.</p>
<p><a href="http://spamassassin.apache.org/" target="_blank"><strong>SpamAssassin</strong></a></p>
<p>Perl Implementierung eines <a href="http://de.wikipedia.org/wiki/SpamAssassin" target="_blank">Spam-Identifikators</a></p>
<p><strong><a href="http://subversion.apache.org/" target="_blank">Apache Subversion</a></strong></p>
<p>SVN ist eine Freie Software zur <a href="http://de.wikipedia.org/wiki/Versionsverwaltung" target="_blank">Versionsverwaltung </a>von Dateien und Verzeichnissen.</p>
<p>Die Versionierung erfolgt in einem zentralen <a title="Repository" href="http://de.wikipedia.org/wiki/Repository">Projektarchiv</a> (engl. <em>repository</em>) in Form einer einfachen Revisionszählung.  Wenn Änderungen an Inhalten verteilt auf den Computern der Bearbeiter  ausgeführt werden, werden zwischen dem Projektarchiv und einem  Arbeitsplatz jeweils nur die Unterschiede zu bereits vorhandenen Ständen  übertragen.</p>
<p><strong><a href="http://lucene.apache.org/nutch/" target="_blank">Apache Nutch</a></strong></p>
<p><strong>Nutch</strong> ist der zurzeit bedeutendste Versuch der <a title="Open Source" href="http://de.wikipedia.org/wiki/Open_Source">Open-Source</a>-Community,  eine <a title="Suchmaschine" href="http://de.wikipedia.org/wiki/Suchmaschine">Suchmaschine</a> zu entwickeln. Die Nutch-Community  selbst betreibt keine eigene Suchmaschine, sondern versteht sich als  reiner Technologielieferant. Angeführt wird die Nutch-Community von Doug  Cutting, einem bekannten Kopf in der Suchmaschinenwelt. Unter seiner  Leitung konnte <a title="Excite" href="http://de.wikipedia.org/wiki/Excite">Excite</a> 1997 den größten Suchmaschinenindex vermelden,  damals 50 Millionen Seiten.</p>
<p>Nutch ist in <a title="Java (Programmiersprache)" href="http://de.wikipedia.org/wiki/Java_%28Programmiersprache%29">Java</a> geschrieben und greift auf  das Indexiersystem <em><a title="Lucene" href="http://de.wikipedia.org/wiki/Lucene">Lucene</a></em> zurück. Weite Teile der Software sind  durch ein Plugin-System erweiterbar. Dadurch können auch Java-Anfänger  einfach Teile zum Gesamtsystem beitragen, ohne dieses in allen Details  verstehen zu müssen.</p>
<p>Und falls sich nun der ein oder andre fragt.. "hm ok Java.. schön?! Doch wie siehts mit PHP aus?"</p>
<p>Ganz einfach:</p>
<p><a href="http://php-java-bridge.sourceforge.net/pjb/" target="_blank">PHP/Java Bridge</a></p>
<p>ps: Sorry falls ich einige wichtige Projekte nicht erwähnt habe, aber es war doch einiges an Info <img src='http://badknight.at/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F05%2F&amp;linkname=Apache%20Software%20Foundation"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX + PHP + WEB 2.0</title>
		<link>http://badknight.at/2010/03/</link>
		<comments>http://badknight.at/2010/03/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 14:50:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=87</guid>
		<description><![CDATA[hab mich in den letzten Tagen mal damit beschäftigt und ich muss sagen genial was da alles möglich ist!
Man verwende einfach

xajax
jquery
jquery UI

und schon kanns los gehen  
Warum XAJAX wenn man jquery hat werden sich manche fragen?
Die Antwort ist klar: es ist einfacher für xajax sind fast keine JS kentnisse notwendig und für einen eingefleischten [...]]]></description>
			<content:encoded><![CDATA[<p>hab mich in den letzten Tagen mal damit beschäftigt und ich muss sagen genial was da alles möglich ist!</p>
<p>Man verwende einfach</p>
<ul>
<li><a href="http://xajaxproject.org/">xajax</a></li>
<li><a href="http://jquery.com/">jquery</a></li>
<li><a href="http://jqueryui.com/">jquery UI</a></li>
</ul>
<p>und schon kanns los gehen <img src='http://badknight.at/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Warum XAJAX wenn man jquery hat werden sich manche fragen?</p>
<p>Die Antwort ist klar: es ist einfacher für xajax sind fast keine JS kentnisse notwendig und für einen eingefleischten PHP - Freak wie mich genau richtig!</p>
<p>kleine Beispiel:</p>
<pre>
<pre class="brush: php;">
&lt;?PHP
require_once(&quot;xajax_core/xajax.inc.php&quot;);

&lt;pre&gt;$xajax = new xajax();
$xajax-&gt;register(XAJAX_FUNCTION,&quot;hallo&quot;);

&lt;pre&gt;function hallo($arg)
{
    // Macht irgendwas mit $arg. zB Datenbankabfragen
    // Hier packen wir $arg in eine neue Variable $newContent
        $newContent = &quot;Value of \$arg: &quot;.$arg;
 
    // Instanziierung vom xajaxResponse Objekt
    $objResponse = new xajaxResponse();
 
    // hinzufügen eines Kommanods in das response Objekt
    // In diesem Fall wird ein -&gt;assign ausgeführt um der Eigenschaft &quot;innerHTML&quot;
    // des DIVs mit der ID SomeElementID mit neuem Inhalt zu überschreiben
    $objResponse-&gt;assign(&quot;SomeElementId&quot;,&quot;innerHTML&quot;, $newContent);
 
    //Rückgabe des response Objekts
    return $objResponse;
}
$xajax-&gt;processRequest();
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/pre&gt;
?&gt;
</pre>
<p>im Header Tag von HTML fügt man dann noch das ein:</p>
<pre class="brush: php;">
&lt;?PHP $xajax-&gt;printJavascript(); ?&gt;
</pre>
<p>es sorgt dafür das die nötigen JS Daten generiert werden!</p>
<p>beispiel wie man das verwendet:</p>
<pre class="brush: xml;">
&lt;pre&gt;&lt;button onclick=&quot;xajax_test('It worked!');&quot;&gt;&lt;/button&gt;&lt;/pre&gt;
</pre>
<p>einfach aber genial <img src='http://badknight.at/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F03%2F&amp;linkname=AJAX%20%2B%20PHP%20%2B%20WEB%202.0"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GAPI und JS</title>
		<link>http://badknight.at/2010/02/</link>
		<comments>http://badknight.at/2010/02/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 15:37:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=81</guid>
		<description><![CDATA[Nach dem ich euch gestern das Tutorial gepostet habe hab ich mich selbst noch ein bisschen gespielt man kann schöne sachen damit machen hier 2 Beispiele:

und

echt nice.. die dinger  
]]></description>
			<content:encoded><![CDATA[<p>Nach dem ich euch gestern das Tutorial gepostet habe hab ich mich selbst noch ein bisschen gespielt man kann schöne sachen damit machen hier 2 Beispiele:</p>
<p><a href="http://badknight.at/wp-content/uploads/2010/02/webeffekt.png" rel="lightbox[81]"><img class="alignnone size-medium wp-image-82" title="webeffekt" src="http://badknight.at/wp-content/uploads/2010/02/webeffekt-300x151.png" alt="" width="300" height="151" /></a></p>
<p>und</p>
<p><a href="http://badknight.at/wp-content/uploads/2010/02/webeffekt2.png" rel="lightbox[81]"><img class="alignnone size-medium wp-image-83" title="webeffekt2" src="http://badknight.at/wp-content/uploads/2010/02/webeffekt2-300x186.png" alt="" width="300" height="186" /></a></p>
<p>echt nice.. die dinger <img src='http://badknight.at/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F02%2F&amp;linkname=GAPI%20und%20JS"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Analytics API</title>
		<link>http://badknight.at/2010/02/</link>
		<comments>http://badknight.at/2010/02/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 12:04:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=75</guid>
		<description><![CDATA[Wie ich neulich hier gelesen habe, gibt es eine Klasse namens GAPI und ich muss sagen:
NICE  
Features

Supports CURL and fopen HTTP access methods, with  autodetection
PHP arrays for Google Analytics metrics and  dimensions 
Account data object mapping - get methods for  parameters 
Report data object mapping - get methods for metrics  [...]]]></description>
			<content:encoded><![CDATA[<p>Wie ich neulich <a href="http://it-republik.de/php/news/Google-Analytics-mit-GAPI-053724.html">hier</a> gelesen habe, gibt es eine Klasse namens GAPI und ich muss sagen:</p>
<p>NICE <img src='http://badknight.at/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>Features</h2>
<ul>
<li><a name="Features:">Supports CURL and fopen HTTP access methods, with  autodetection</a></li>
<li><a name="Features:">PHP arrays for Google Analytics metrics and  dimensions </a></li>
<li><a name="Features:">Account data object mapping - get methods for  parameters </a></li>
<li><a name="Features:">Report data object mapping - get methods for metrics  and parameters </a></li>
<li><a name="Features:">Easy filtering, use a GAPI query language for Google  Analytics filters</a></li>
<li><a name="Features:">Full PHP5 Object Oriented code, ready for use in  your PHP application</a></li>
</ul>
<p>wie funktioniert es?</p>
<pre class="brush: php;">
&lt;pre&gt;&lt;?php

require 'gapi-1.3/gapi.class.php';

/* Set your Google Analytics credentials */
define('ga_account'     ,'YOUR ANALYTICS EMAIL');
define('ga_password'    ,'YOUR ANALYTICS PASSWORD');
define('ga_profile_id'  ,'ANALYTICS SITE PROFILE ID');

$ga = new gapi(ga_account,ga_password);

/* We are using the 'source' dimension and the 'visits' metrics */
$dimensions = array('source');
$metrics    = array('visits');

/* We will sort the result be desending order of visits,
    and hence the '-' sign before the 'visits' string */
$ga-&gt;requestReportData(ga_profile_id, $dimensions, $metrics,'-visits');

$gaResults = $ga-&gt;getResults();

$i=1;

foreach($gaResults as $result)
{
    printf(&quot;%-4d %-40s %5d\n&quot;,
           $i++,
           $result-&gt;getSource(),
           $result-&gt;getVisits());
}

echo &quot;\n-----------------------------------------\n&quot;;
echo &quot;Total Results : {$ga-&gt;getTotalResults()}&quot;;

?&gt;</pre>
<p>hier werden z.B. die top 10 der Zugriffe auf die HP angezeigt</p>
<pre class="brush: xml;">
&lt;pre&gt;No.  Source                                   Visits
------------------------------------------------------
1    google                                   10549
2    (direct)                                  1484
3    stumbleupon.com                           1338
4    webintenta.com                             159
5    bing                                       142
6    yahoo                                      115
7    feedburner                                  97
8    phpdeveloper.org                            70
9    t3n.de                                      64
10   clearspace.openqa.org                       43
</pre>
<p>und wenn man dann noch nette Effekte wie <a href="http://de2.php.net/manual/en/ref.swf.php">PHP - SWF Function</a><br />
verwendet hat man den "<strong>checkeffect</strong>" geknackt.. <img src='http://badknight.at/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F02%2F&amp;linkname=Google%20Analytics%20API"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS &#8211; Offline lesen</title>
		<link>http://badknight.at/2010/02/</link>
		<comments>http://badknight.at/2010/02/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:52:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=69</guid>
		<description><![CDATA[Kennt ihr das?
Ihr habt eine schöne Seite gemacht und möchtet verhindern das Leute diese offline lesen können ?!
hier ein kleiner trick wie ihr das verhindern könnt:


&#60;script language=&#34;javascript&#34;&#62;
 if (window.location.host != &#34;www.badknight.at&#34;)
 {
 window.location.href = &#34;http://badknight.at/error&#34;;
 }
 &#60;/script&#62;

]]></description>
			<content:encoded><![CDATA[<p>Kennt ihr das?</p>
<p>Ihr habt eine schöne Seite gemacht und möchtet verhindern das Leute diese offline lesen können ?!</p>
<p>hier ein kleiner trick wie ihr das verhindern könnt:</p>
<pre class="brush: jscript;">

&lt;script language=&quot;javascript&quot;&gt;
 if (window.location.host != &quot;www.badknight.at&quot;)
 {
 window.location.href = &quot;http://badknight.at/error&quot;;
 }
 &lt;/script&gt;
</pre>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F02%2F&amp;linkname=JS%20%26%238211%3B%20Offline%20lesen"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP SimpleXML und XML &#8211; so einfach geht es</title>
		<link>http://badknight.at/2010/02/</link>
		<comments>http://badknight.at/2010/02/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:21:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=57</guid>
		<description><![CDATA[Mit PHP5 wurde das Thema XML Parsen sehr einfach hier mal eine kleine Einführung wie es geht:
artikel.xml:


&#60;?xml version=&#34;1.0&#34; encoding=&#34;ISO-8859-1&#34; ?&#62;
&#60;artikel&#62;
&#60;titel&#62;Der Titel&#60;/titel&#62;
&#60;teaser&#62;Der Teaser, eine kurze Beschreibung&#60;/teaser&#62;
&#60;inhalt&#62;Der Artikelinhalt an sich&#60;/inhalt&#62;
&#60;/artikel&#62;

Um beispielsweise an den Inhalt des &#60;teaser&#62; Elementes zu  gelangen, bedarf es nur weniger Zeilen Code:
simplexml_1.php:


&#60;?php

if (file_exists('artikel.xml')) {
$xml = simplexml_load_file('artikel.xml');

echo $xml-&#62;teaser[0];

} else {
exit('Konnte Datei nicht laden.');
}
?&#62;

Durch die [...]]]></description>
			<content:encoded><![CDATA[<p>Mit PHP5 wurde das Thema XML Parsen sehr einfach hier mal eine kleine Einführung wie es geht:</p>
<p>artikel.xml:</p>
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;artikel&gt;
&lt;titel&gt;Der Titel&lt;/titel&gt;
&lt;teaser&gt;Der Teaser, eine kurze Beschreibung&lt;/teaser&gt;
&lt;inhalt&gt;Der Artikelinhalt an sich&lt;/inhalt&gt;
&lt;/artikel&gt;
</pre>
<p>Um beispielsweise an den Inhalt des &lt;teaser&gt; Elementes zu  gelangen, bedarf es nur weniger Zeilen Code:</p>
<p>simplexml_1.php:</p>
<pre class="brush: php;">

&lt;?php

if (file_exists('artikel.xml')) {
$xml = simplexml_load_file('artikel.xml');

echo $xml-&gt;teaser[0];

} else {
exit('Konnte Datei nicht laden.');
}
?&gt;
</pre>
<p>Durch die simplexml_load_file() Funktion wird die XML Datei eingelesen  und <strong>direkt in ein Objekt überführt</strong>. Auf die Elemente  des Objektes kann jetzt wie auf normale Objekte zugegriffen werden. Die  Ausgabe erfolgt über das $xml Objekt, welches nichts anderes als das  Wurzelelement &lt;artikel&gt; darstellt.</p>
<p>Dabei erfolgt der Zugriff auf die Elemente jeweils über Arrays. Da in  unserem Fall nur ein Element innerhalb des <strong>Wurzelelementes</strong> &lt;artikel&gt; als &lt;teaser&gt; Element verwendet wird, geschieht  der Zugriff auf den Inhalt dieses Elementes mit dem Arrayindex 0. Wären  zwei &lt;teaser&gt; Elemente verwendet, würde man über den Index 1 auf  das zweite Element zugreifen.</p>
<p>Um zu verstehen, wie bei SimpleXML die Daten in Objekten gespeichert  werden, kann man sich mit der var_dump() Funktion von PHP schlicht <strong>den  gesamten Inhalt</strong> des Objektes ausgeben lassen. Man ändert den  Code einfach wie folgt ab:</p>
<p>simplexml_1.php:</p>
<pre class="brush: php;">

&lt;?php

if (file_exists(&quot;artikel.xml&quot;)) {
$xml = simplexml_load_file(&quot;artikel.xml&quot;');

var_dump($xml);
}
else {
exit(&quot;Konnte Datei nicht laden. &quot;);
}
?&gt;
</pre>
<p>Die Ausgabe nach Aufruf des Skriptes  sieht wie folgt aus:</p>
<pre class="brush: php;">

object(SimpleXMLElement)#1 (3)
{
[&quot;titel&quot;]=&gt; string(9) &quot;Der Titel&quot;
[&quot;teaser&quot;]=&gt; string(35) &quot;Der Teaser, eine kurze Beschreibung&quot;
[&quot;inhalt&quot;]=&gt; string(25) &quot;Der Artikelinhalt an sich&quot;
}
</pre>
<p>Darin erkennt man die gesamte Struktur des XML Dokumentes wieder.  SimpleXML erkennt, dass das Dokument genau aus einem Element  object(SimpleXMLElement)#1  besteht, welches drei  object(SimpleXMLElement)#1 (3) untergeordnete Elemente beherbergt. Diese  Elemente, ihr Datentyp und deren Inhalte werden dann in  geschweiften  Klammern angegeben.</p>
<p>Wenn man bedenkt, dass zum Parsen eines XML Dokumentes mit dem  ereignisorientierten     Parser <a href="http://www.devmag.net/webprog/php_xml_expat_1.htm">Expat</a> mindestens drei Funktionen     definiert werden mussten, ist der hierzu notwendige Aufwand mit  SimpleXML     nicht vergleichbar.</p>
<p><strong>Komplexere XML Dokumente und SimpleXML?</strong><br />
Auch komplexe XML Dokumente lassen sich mit SimpleXML rasch bearbeiten.  Folgendes XML Dokument ist fast identisch mit dem Beispiel oben, es  wurde jedoch  mit Attributen und weiteren Elementen versehen.</p>
<p>artikel_2.xml:</p>
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;content&gt;
&lt;artikel id=&quot;1&quot;&gt;
&lt;meta&gt;
&lt;keywords&gt;ein,netter,artikel&lt;/keywords&gt;
&lt;description&gt;ein,lustiger,artikel&lt;/description&gt;
&lt;/meta&gt;
&lt;titel&gt;Der Titel&lt;/titel&gt;
&lt;teaser&gt;Der Teaser, eine kurze Beschreibung&lt;/teaser&gt;
&lt;inhalt&gt;Der Artikelinhalt&lt;/inhalt&gt;
&lt;/artikel&gt;
&lt;artikel id=&quot;2&quot;&gt;
&lt;meta&gt;
&lt;keywords&gt;ein,zweiter,netter,artikel&lt;/keywords&gt;
&lt;description&gt;ein,zweiter,lustiger,artikel&lt;/description&gt;
&lt;/meta&gt;
&lt;titel&gt;Der zweite Titel&lt;/titel&gt;
&lt;teaser&gt;Der zweite Teaser, eine kurze  Beschreibung&lt;/teaser&gt;
&lt;inhalt&gt;Der zweite Artikelinhalt&lt;/inhalt&gt;
&lt;/artikel&gt;
&lt;/content&gt;
</pre>
<p>Da SimpleXML ausgesprochen modular aufgebaut ist und viele  Schnittstellen zu weiteren PHP- beziehungsweise XML Technologien  aufweist, können komplexe Untersuchungen von XML Dokumenten zum Beispiel  über den in SimpleXML integrierten <strong>XPath Prozessor</strong> durchgeführt werden. Das heißt, man kann über die Pfadangaben in XPath  auf die gesuchten Elemente zugreifen.</p>
<p>Dies soll im folgenden Beispiel geschehen – es soll lediglich der vom  Besucher angefragte Artikel angezeigt werden. Der gewünschte Artikel  wird durch die <strong>ID</strong> identifiziert, die im &lt;artikel&gt;  Element als Attribut definiert ist. Diese ID wird über den URL an das  PHP Programm übergeben.</p>
<p>simplexml2.php</p>
<pre class="brush: php;">

&lt;?php

$id = $_GET['id'];

if (file_exists(&quot;test.xml&quot;)) {

 $xml = simplexml_load_file(&quot;test.xml&quot;);
 $path =&quot;/content/artikel[@id=&quot;.$id.&quot;]&quot;;

if (!$res = $xml-&gt;xpath($path)) {
echo &quot;Artikel nicht vorhanden!&quot;;
}
else {
echo &quot;&lt;h1&gt;&quot;.$res[0]-&gt;titel.&quot;&lt;/h1&gt;&quot;;
echo &quot;&lt;p&gt;&lt;b&gt;&quot;.$res[0]-&gt;teaser.&quot;&lt;/b&gt;&lt;/p&gt;&quot;;
echo &quot;&lt;p&gt;&quot;.$res[0]-&gt;inhalt.&quot;&lt;/p&gt;&quot;;
}
}
else {
exit(&quot;Konnte Datei nicht laden.&quot;);
}
?&gt;
</pre>
<p>Auf den gewünschten Artikel wird über den XPath Pfad  /content/artikel[@id=".$id."] zugegriffen. Die Anfrage wird über die  xpath() Methode verarbeitet und das Ergebnis der Variable $res  zurückgegeben. In diesem Array sind nun alle Elemente des gesuchten <strong>Artikel-Objektes</strong> gespeichert. Auf diese kann wie auf ein Objekt zugegriffen werden.</p>
<p>Weitere Informationen  zu <a href="http://php.net/simplexml%20" target="_blank">SimpleXML und PHP5</a>.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F02%2F&amp;linkname=PHP%20SimpleXML%20und%20XML%20%26%238211%3B%20so%20einfach%20geht%20es"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.htaccess</title>
		<link>http://badknight.at/2010/02/</link>
		<comments>http://badknight.at/2010/02/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:17:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=54</guid>
		<description><![CDATA[Habt ihr euch schon mal gefragt wie das geht das ein php code in  anscheinend normalen "html" dateien angezeigt wird?
es ist recht  simpel.. man schreibt in eine Datei die ".htaccess" heißt folgendes  rein:


AddType application/x-httpd-php php php4 php3 html htm

Mit  diesem Code werden alle Dateien mit den Endungen *.php, *.php4, *.php3  [...]]]></description>
			<content:encoded><![CDATA[<p>Habt ihr euch schon mal gefragt wie das geht das ein php code in  anscheinend normalen "html" dateien angezeigt wird?</p>
<p>es ist recht  simpel.. man schreibt in eine Datei die ".htaccess" heißt folgendes  rein:</p>
<pre class="brush: php;">

AddType application/x-httpd-php php php4 php3 html htm
</pre>
<p>Mit  diesem Code werden alle Dateien mit den Endungen *.php, *.php4, *.php3  und *.html, *.htm von PHP interpretiert.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F02%2F&amp;linkname=.htaccess"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Regex =&gt; alle img Tags auslesen</title>
		<link>http://badknight.at/2010/02/</link>
		<comments>http://badknight.at/2010/02/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:16:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=51</guid>
		<description><![CDATA[Mit diesem kleinen Trick können Sie alle src Werte von img-Tags über  einen regulären Ausdruck mit PHP auslesen und ändern. Das ist hilfreich,  wenn Sie einmal in viel HTML Code die URLs in dem img-Tag anpassen oder  ändern müssen. Reguläre Ausdrücke machen es möglich.
Vielleicht kennen Sie das Problem? Sie möchten, dass in [...]]]></description>
			<content:encoded><![CDATA[<p>Mit diesem kleinen Trick können Sie alle src Werte von img-Tags über  einen regulären Ausdruck mit PHP auslesen und ändern. Das ist hilfreich,  wenn Sie einmal in viel HTML Code die URLs in dem img-Tag anpassen oder  ändern müssen. Reguläre Ausdrücke machen es möglich.</p>
<p>Vielleicht kennen Sie das Problem? Sie möchten, dass in viel HTML  Code, z.B. aus einer Datenbank, automatisch die src-Attribute an  img-Tags angepasst werden. Sei es z.B., dass aus</p>
<pre class="brush: xml;">

&lt;img src=&quot;/images/bild.jpg&quot; alt=&quot;Ein Bild&quot; /&gt;  automatisch &lt;img src=&quot;&lt;a href=&quot;http://www.testseite.de/images/bild.jpg&quot;&gt;http://www.testseite.de/images/bild.jpg&lt;/a&gt;&quot;  alt=&quot;Ein Bild&quot; /&gt;
</pre>
<p>werden soll.</p>
<p>Jetzt sind Sie sich aber nicht sicher, ob sie wirklich nur valides  HTML verwendet haben? Also es soll auch folgendes ersetzt werden:</p>
<pre class="brush: xml;">

&lt;IMG src=&quot;test/images/bild.jpg&quot; alt=&quot;Ein Bild&quot; /&gt;
</pre>
<p>oder</p>
<pre class="brush: xml;">
&lt;imG SRC='mein_blog/images/bild.jpg' alt=&quot;Ein Bild&quot;&gt;
</pre>
<p>Folgende Zeilen PHP Code erledigen das gewünschte:</p>
<p><code>
<pre class="brush: php;">
$old = &quot;Alter HTML Code, etwa &lt;img src=&quot;/images/bild.jpg&quot; alt=&quot;Ein  Bild&quot; /&gt;
$neue_url = &quot;&lt;a href=&quot;http://www.testseite.de/&quot;&gt;http://www.testseite.de&lt;/a&gt;&quot;;
$pattern =  '/(&lt;img.+?src=)([&quot;\']?)([^\'&quot;]+?)([^\/]+)(\2.*?\/?&gt;)/is';
$replace = &quot;$1$2&quot;.$neue_url.&quot;$4$5&quot;;
$new = preg_replace($pcre, $replace, $old);
</pre>
<p>Zu dem Code gibt es noch eine kurze Erklärung. Das zweite Subpattern  fängt das linke Quote-Zeichen auf, oder eben keins, wenn keins da ist –  falls der HTML code nicht valide ist. Das dritte passt auf den Pfad und  wird deshalb ersetzt. Das vierte Subpattern erfasst alles nach dem  letzten Slash bis zum Ende des Dateinamens. ‘\2′ ist eine Rückreferenz  (”back reference”) und passt auf exakt das gleiche Zeichen wie das  zweite Subpattern, also ‘”‘, “‘” oder kein Zeichen. Der Rest versucht  alle möglichen Arten von img-Tags zu erfassen: “&lt;img …&gt;”, “&lt;img  …/&gt;” und “&lt;img … /&gt;”.</p>
<p>have fun ; )</p>
<p></code></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F02%2F&amp;linkname=PHP%20%26%238211%3B%20Regex%20%3D%3E%20alle%20img%20Tags%20auslesen"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Der Alte Trick..</title>
		<link>http://badknight.at/2010/02/</link>
		<comments>http://badknight.at/2010/02/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:12:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=48</guid>
		<description><![CDATA[Immer wieder kommt es vor, das mehr oder weniger Unerfahrene Surfer  von einem anscheinenden "Hack" erzählen, da ihr Festplatteninhalt auf  einer Website angezeigt wurde. Mit ein wenig HTML ist dieser Effekt  möglich, und er ist völlig ungefährlich.
So manch ein Webmaster macht sich einen Spass daraus, den  Besucher     [...]]]></description>
			<content:encoded><![CDATA[<p>Immer wieder kommt es vor, das mehr oder weniger Unerfahrene Surfer  von einem anscheinenden "Hack" erzählen, da ihr Festplatteninhalt auf  einer Website angezeigt wurde. Mit ein wenig HTML ist dieser Effekt  möglich, und er ist völlig ungefährlich.</p>
<p>So manch ein Webmaster macht sich einen Spass daraus, den  Besucher               ein wenig zu schocken, in dem der Inhalt der Festplatte  des Besuchers               auf der Website angezeigt wird. Eigentlich ist dieser  Effekt ziemlich               "kindisch", doch sollte man schon Wissen, wie das mit               HTML geht.<br />
Ein einfacher Trick mit einem Iframe, also einem in das  Dokument               eingebetteten Frame macht dies möglich.</p>
<pre class="brush: xml;">

&lt;iframe src=&quot;&lt;a href=&quot;file:///C:/&quot;&gt;file://C:/&lt;/a&gt;&quot; width=&quot;400&quot;               height=&quot;400&quot; name=&quot;werbung&quot;&gt;&lt;p&gt;Ihr
Festplatteninhalt auf C&lt;/p&gt;&lt;/iframe&gt;
</pre>
<p>easy oder ..  ;) ?</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2010%2F02%2F&amp;linkname=Der%20Alte%20Trick.."><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2010/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neue Tastatur und Maus</title>
		<link>http://badknight.at/2009/05/</link>
		<comments>http://badknight.at/2009/05/#comments</comments>
		<pubDate>Mon, 25 May 2009 17:21:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://badknight.at/?p=42</guid>
		<description><![CDATA[seit Jahren gibt es eine Tastatur, die die Herzen aller gamer höher schlägen lässt und das ist die Logitech g15.
Als heute Plötzlich mein Bruder vorbei kahm und mir sagte das er sich ne falsche gekauft hat hab ich natürlich gleich zugeschlagen und somit die g11 erhalten (selbes Teil nur ohne Display) und ja, ist sehr [...]]]></description>
			<content:encoded><![CDATA[<p>seit Jahren gibt es eine Tastatur, die die Herzen aller gamer höher schlägen lässt und das ist die <a href="http://www.logitech.com/index.cfm/keyboards/keyboard/devices/3498&amp;cl=DE,DE" target="_blank">Logitech g15</a>.</p>
<p>Als heute Plötzlich mein Bruder vorbei kahm und mir sagte das er sich ne falsche gekauft hat hab ich natürlich gleich zugeschlagen und somit die g11 erhalten (selbes Teil nur ohne Display) und ja, ist sehr nett <img src='http://badknight.at/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fbadknight.at%2F2009%2F05%2F&amp;linkname=Neue%20Tastatur%20und%20Maus"><img src="http://badknight.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://badknight.at/2009/05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

