<?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>Side Notes &#187; Coding</title>
	<atom:link href="http://blog.snaky.org/category/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.snaky.org</link>
	<description>Relax, its only ONES and ZEROS!</description>
	<lastBuildDate>Sun, 11 Oct 2009 12:20:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<image>
<link>http://blog.snaky.org</link>
<url>http://blog.snaky.org/wp-content/plugins/maxblogpress-favicon/icons/favicon-26.ico</url>
<title>Side Notes</title>
</image>
		<item>
		<title>Eingeloggt bleiben &#8211; Eine Funktion und ihre Tücken</title>
		<link>http://blog.snaky.org/2009/08/16/eingeloggt-bleiben-eine-funktion-und-ihre-tucken/</link>
		<comments>http://blog.snaky.org/2009/08/16/eingeloggt-bleiben-eine-funktion-und-ihre-tucken/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 17:31:11 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=114</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Sobald man irgendwo auf eine Seite mit Registrierung gelangt und man diese Seite öfer besucht, merkt man schnell, wie nervig es ist, selbst mit Firefox-Passwortmanager, ständig sich einzuloggen. Als Programmeirer stellt sich schnell die Frage ob man eine Funktion ala &#8220;Eingeloggt bleiben&#8221; anbietet. Wie OWASP in ihren Top 10 empfehlen sollte jeder Entwickler auf diese [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Sobald man irgendwo auf eine Seite mit Registrierung gelangt und man diese Seite öfer besucht, merkt man schnell, wie nervig es ist, selbst mit Firefox-Passwortmanager, ständig sich einzuloggen.<br />
Als Programmeirer stellt sich schnell die Frage ob man eine Funktion ala &#8220;Eingeloggt bleiben&#8221; anbietet. Wie <a href="http://www.owasp.org">OWASP</a> in ihren <a href="http://www.owasp.org/images/e/e8/OWASP_Top_10_2007.pdf">Top 10</a> empfehlen sollte jeder Entwickler auf diese aus Sicherheitsgründen verzichten.<br />
Meiner Meinung nach sollte man jedoch gerade bei solch wichtigen Funktion usability vor Security stellen. Nun nicht falsch verstehen, natürlich sollte man auf Sicherheit achten. Aber gerade bei einem Login ist es wichtig, dass die Leute sich gerne wieder einloggen um Neuigkeiten zu erfahren. Ist der Login umständlich, so meldet man sich ungern noch einmal an, weil es eine geühlte Ewigkeit dauert.</p>
<p>Um troz einer Funktion &#8220;Eingeloggt bleiben&#8221; genug Sicherheit zu haben um auch das Cookie-Riding zu verhindern verweise ich also gerne auf diesen Eintrag.</p>
<p><a href="http://jaspan.com/improved_persistent_login_cookie_best_practice">Improved Persistent Login Cookie Best Practice</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2009/08/16/eingeloggt-bleiben-eine-funktion-und-ihre-tucken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doppelposting vermeiden</title>
		<link>http://blog.snaky.org/2009/08/13/doppelposting-vermeiden/</link>
		<comments>http://blog.snaky.org/2009/08/13/doppelposting-vermeiden/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 15:00:04 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[doppel]]></category>
		<category><![CDATA[double]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=110</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Das aktualisieren der Seite wird oftmals von Besuchern auch nach einem Forumular benutzt. Damit jedoch kein Doppelposting entsteht erkläre ich kurz eine Funktion. Hierzu muss bereits am Anfang der php-Datei eine Session mit session_start(); gestartet werden. Zusätzlich muss in das Formular ein zusätzliches Feld hinzugefügt werden. Der name kann natürlich Frei gewählt werden. echo &#34;&#60;input [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Das aktualisieren der Seite wird oftmals von Besuchern auch nach einem Forumular benutzt. Damit jedoch kein Doppelposting entsteht erkläre ich kurz eine Funktion.</p>
<p>Hierzu muss bereits am Anfang der php-Datei eine Session mit session_start(); gestartet werden.<br />
Zusätzlich muss in das Formular ein zusätzliches Feld hinzugefügt werden. Der name kann natürlich Frei gewählt werden.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;input name='rft' type='hidden' value='&quot;</span><span style="color: #339933;">.</span>random_form_token<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;' /&gt;&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Bei der Verarbeitung des Formulars muss nun nurnoch vor dem Speichern dies hier abgeprüft werden.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>random_form_token<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'rft'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// Schreiben</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// Doppelposting erkannt</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Und nun hier noch die Funktion selbst.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> random_form_token<span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$token</span> <span style="color: #339933;">=</span> <span style="color: #990000;">hash</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;sha256&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;tanzmal&quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'random_form_token'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$token</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$token</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'random_form_token'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'random_form_token'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2009/08/13/doppelposting-vermeiden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standard Sprachen anhand des Browsers definieren</title>
		<link>http://blog.snaky.org/2008/09/20/standard-sprachen-anhand-des-browsers-definieren/</link>
		<comments>http://blog.snaky.org/2008/09/20/standard-sprachen-anhand-des-browsers-definieren/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 13:36:50 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[selfhtml]]></category>
		<category><![CDATA[Spache]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=84</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Sobald man mehrere Sprachen unterstützt, ist es natürlich leicht den Besucher selbst aussuchen zu lassen welche Sprache er ansehen will. Um die Standard-Sprache zu setzen habe ich auf selfhtml eine schöne Sprachfunktion gefunden. Sinnvoll ist diese um eine Standardsprache auszuwählen und eine Menge an unterstützen Sprachen.]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Sobald man mehrere Sprachen unterstützt, ist es natürlich leicht den Besucher selbst aussuchen zu lassen welche Sprache er ansehen will.<br />
Um die Standard-Sprache zu setzen habe ich auf selfhtml eine schöne <a href="http://aktuell.de.selfhtml.org/artikel/php/httpsprache/">Sprachfunktion</a> gefunden.<br />
Sinnvoll ist diese um eine Standardsprache auszuwählen und eine Menge an unterstützen Sprachen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/09/20/standard-sprachen-anhand-des-browsers-definieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verzeichnis rekursiv auslesen (mit Dateigröße)</title>
		<link>http://blog.snaky.org/2008/09/12/verzeichnis-rekursiv-auslesen-mit-dateigrose/</link>
		<comments>http://blog.snaky.org/2008/09/12/verzeichnis-rekursiv-auslesen-mit-dateigrose/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 15:07:47 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[auslesen]]></category>
		<category><![CDATA[funktion]]></category>
		<category><![CDATA[rekursiv]]></category>
		<category><![CDATA[Verzeichnis]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=81</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Ein Verzeichnis rekursiv mit PHP auszulesen bedarf es nicht viel. Hier habe ich ein beispiel mit lediglich 3 kleinen Funktionen. Die Erste gibt eine lesbare Dateigröße aus Die zweite Funktion definiert, wie die Dateien angezeigt werden sollen Die Dritte Liest die Ordner aus und ruft gegebenenfalls Sich slebst mit neuem Parameter auf function byteConvert&#40;$bytes&#41;&#123; $symbol [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Ein Verzeichnis rekursiv mit PHP auszulesen bedarf es nicht viel.</p>
<p>Hier habe ich ein beispiel mit lediglich 3 kleinen Funktionen.</p>
<ul>
<li> Die Erste gibt eine lesbare Dateigröße aus</li>
<li>Die zweite Funktion definiert, wie die Dateien angezeigt werden sollen</li>
<li>Die Dritte Liest die Ordner aus und ruft gegebenenfalls Sich slebst mit neuem Parameter auf</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> byteConvert<span style="color: #009900;">&#40;</span><span style="color: #000088;">$bytes</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$symbol</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'B'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'KB'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MB'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'GB'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'TB'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'PB'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'EB'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ZB'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'YB'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$exp</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$converted_value</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$bytes</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$exp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">floor</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">log</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$bytes</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #990000;">log</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$converted_value</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$bytes</span><span style="color: #339933;">/</span><span style="color: #990000;">pow</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: #339933;">,</span><span style="color: #990000;">floor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$exp</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'%.2f '</span><span style="color: #339933;">.</span><span style="color: #000088;">$symbol</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$exp</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$converted_value</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> file_detail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">,</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$stat</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">stat</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">.</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">#print_r($stat);
</span>	<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;td&gt;<span style="color: #006699; font-weight: bold;">$name</span>&lt;/td&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;td&gt;&quot;</span><span style="color: #339933;">.</span>byteConvert<span style="color: #009900;">&#40;</span><span style="color: #000088;">$stat</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'size'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/td&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$returner</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">function</span> rec_scan_dir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$returner</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;table&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">scandir</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$dir</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">sort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$file</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;.&quot;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$file</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;tr&gt;&lt;td class='dir'&gt;<span style="color: #006699; font-weight: bold;">$file</span>&lt;/td&gt;&lt;/tr&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;tr&gt;&lt;td&gt;&lt;div class='dir_pad' style='padding-left:10px;'&gt;&quot;</span><span style="color: #339933;">.</span>rec_scan_dir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;tr&gt;&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> file_detail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">,</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/tr&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$returner</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/table&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$returner</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'./files/'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;h1&gt;<span style="color: #006699; font-weight: bold;">$dir</span>&lt;/h1&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span>rec_scan_dir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/09/12/verzeichnis-rekursiv-auslesen-mit-dateigrose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Localization Fun</title>
		<link>http://blog.snaky.org/2008/07/06/localization-fun/</link>
		<comments>http://blog.snaky.org/2008/07/06/localization-fun/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 23:55:31 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[sprache]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=66</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Um Webseiten zu internationalisieren, benötigt es mehr als nur die übersetzten Texte. Ich erkläre hier die Grundlagen die man benötigt um eine erfolgreiche Internationalisierung vorzunehmen. Nehmen wir an wir haben unsere normale Seite. Natürlich sind hier durchaus mehr Texte denkbar. 1 2 echo &#34;Herzlich Willkommen&#34;.&#34;\n&#34;; echo &#34;Link zum Gästebuch&#34;; Um nun mehrere Sprachen zu unterstützen [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Um Webseiten zu internationalisieren, benötigt es mehr als nur die übersetzten Texte. Ich erkläre hier die Grundlagen die man benötigt um eine erfolgreiche Internationalisierung vorzunehmen.</p>
<p>Nehmen wir an wir haben unsere normale Seite. Natürlich sind hier durchaus mehr Texte denkbar.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="1" style="font-family:monospace;">echo &quot;Herzlich Willkommen&quot;.&quot;\n&quot;;
echo &quot;Link zum Gästebuch&quot;;</pre></td></tr></table></div>

<p><span id="more-66"></span><br />
Um nun mehrere Sprachen zu unterstützen passen wir zuerst unsere Seite an</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="1" style="font-family:monospace;">echo $message[&quot;welcome&quot;].&quot;\n&quot;;
echo $message[&quot;link_guestbook&quot;];</pre></td></tr></table></div>

<p>Da wir zu einer erfolgreichen Internationalisierung auch andere Sprachen brauchen hier ein Beispiel hierfür.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// lang_de.php - Deutsche Sprache</span>
<span style="color: #000088;">$message</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;welcome&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Herzlich Willkommen&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$message</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;link_guestbook&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Link zum Gästebuch&quot;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// lang_en.php - english language</span>
<span style="color: #000088;">$message</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;welcome&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Welcome&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$message</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;link_guestbook&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Link to guestbook&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Nun müssen wir in unsere Seite noch eine Abfrage machen welche Sprache benutzt werden soll.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="1" style="font-family:monospace;">switch($_GET['lang'){
	default:
	case &quot;de&quot;: include(&quot;lang_de.php&quot;); break;
	case &quot;en&quot;: include(&quot;lang_en.php&quot;); break;
}
echo $message[&quot;welcome&quot;].&quot;\n&quot;;
echo $message[&quot;link_guestbook&quot;];</pre></td></tr></table></div>

<p>Manchmal kann es jedoch sein, dass man auch in Funktionen die Sprachblöcke benutzen will. Um ein</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$message</span></pre></div></div>

<p> in jeder Funktion zu vermeiden. Benutzen wir anstatt eines Arrays globale Konstanten. Wie auf den <a href="http://www.php.net/manual/de/language.constants.php">PHP-Seiten</a> zu erlesen ist sollte man für Konstanten immer GROSSBUCHSTABEN verwenden. Auch sollte den Konstantennamen kein <b>$</b> voran gestellt werden. So erhalten wir eine Sprachdatei die zum Beispiel so aussieht.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// lang_de.php - Deutsche Sprache</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WELCOME&quot;</span><span style="color: #339933;">,</span>		<span style="color: #0000ff;">&quot;Herzlich Willkommen&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;LINK_GUESTBOOK&quot;</span><span style="color: #339933;">,</span> 	<span style="color: #0000ff;">&quot;Link zum Gästebuch&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Nun müssen wir nurnoch unsere Seite anpassen.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="1" style="font-family:monospace;">switch($_GET['lang'){
	default:
	case &quot;de&quot;: include(&quot;lang_de.php&quot;); break;
	case &quot;en&quot;: include(&quot;lang_en.php&quot;); break;
}
echo WELCOME.&quot;\n&quot;;
echo LINK_GUESTBOOK;</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/07/06/localization-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Array to Graph</title>
		<link>http://blog.snaky.org/2008/07/05/array-to-graph/</link>
		<comments>http://blog.snaky.org/2008/07/05/array-to-graph/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 09:17:33 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[diagramm]]></category>
		<category><![CDATA[funktionen]]></category>
		<category><![CDATA[graph]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=45</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Immerwieder passiert es. Man hat Daten die man gerne in einem Diagramm darstellen möchte. Da dies mitunter recht schwer sein kann, habe ich mir meine eigene PHP-Funktion geschrieben, die es mir ermöglicht ein Array direkt mit einem Diagramm zu visualisieren. Um eine solche Funktion zu Programmieren benötigen wir mehrere Teile. 0. Der Funktionskopf sieht so [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Immerwieder passiert es. Man hat Daten die man gerne in einem Diagramm darstellen möchte. Da dies mitunter recht schwer sein kann, habe ich mir meine eigene PHP-Funktion geschrieben, die es mir ermöglicht ein Array direkt mit einem Diagramm zu visualisieren.</p>
<p>Um eine solche Funktion zu Programmieren benötigen wir mehrere Teile.<br />
<span id="more-45"></span><br />
0. Der Funktionskopf sieht so aus</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> arraytograph<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #339933;">,</span><span style="color: #000088;">$w</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">300</span><span style="color: #339933;">,</span><span style="color: #000088;">$h</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span><span style="color: #000088;">$show_keys</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><span style="color: #000088;">$label</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>1. Prüfen ob die übergebenen Werte gefüllt sind. Des Weiteren prüfen wir, welche Achsenbeschriftung angezeigt werden soll. Auch definieren wir hier den Standard Abstand nach oben und unten.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$label</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$show_precent</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$show_number</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$label</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'percent'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$show_precent</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$show_number</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$show_precent</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$show_number</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$pic_border_top</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$pic_border_bottom</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span></pre></div></div>

<p>2. Die Schlüssel des Arrays holen, um die Achsenbeschriftung zu zeichnen</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// getting the keys from array</span>
	<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_keys</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>3. Um den Platz für die Achsenbeschriftung zu machen, wird der Längste Schlüssel gesucht. Um genug Platz zu haben, wird die pro Zeichen 6 Pixel gerechnet. Damit die Schrift nicht am Boden &#8220;aufsetzt&#8221; werden nochmals 12 Pixel hinzugerechnet.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// the keys should be displayed, so add a stripe for displaying the keys</span>
	<span style="color: #666666; font-style: italic;">// find the longest key. the length of string *6pixel per letter are added to the border bottom</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_keys</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$max</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span></pre></div></div>

<p>4. Damit die Möglichkeit besteht, nicht nur die relativen Prozentralen anzeigen zu lassen, suchen wir erneut den längsten String in dem Array. Diesmal jedoch auf die Werte bezogen. Pro Zeichen benutzen wir diesmal 8 Pixel. Wenn Prozentzahlen angezeigt werden sollen, so wird der obere freie Platz um 32 Pixel vergrößert.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// the number should be displayed at the top of the diagramm</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_number</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$max_num</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #000088;">$pic_border_top</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$pic_border_top</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$max_num</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_precent</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$pic_border_top</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">32</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>5. Um die relative Höhe auszurechnen suchen wir den größten Wert in dem Datenarray und setzten alle anderen Werte in Relation zu diesem Wert.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">//Convert the values to percent values</span>
	<span style="color: #000088;">$hundredp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">max</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$newarray</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$el</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$newarray</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$el</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$hundredp</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>6. Um nun ein Diagramm zu erstellen, nehmen wir die Parameter $w und $h und rufen mit diesen die Funktion imagecreatetruecolor auf. Um später verschiedene Farben benutzen zu können definieren wir uns hier auch gleich ein paar Farben</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// let's start with the image-creation</span>
	<span style="color: #000088;">$im</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$w</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//define colors.</span>
	<span style="color: #000088;">$col_background</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$col_grid</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x53</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x44</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x01</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$col_bars</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #208080;">0xb7</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x6b</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x1a</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$col_text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>7. Um ein schönes Diagramm erstellen zu können muss es natürlich auch ein Raster geben. Hierzu werden zuerst die horizontalen Linien gezeichnet. Diese werden über die gesamte Breite des Bildes gezeichnet. Um natürlich die horizontalen Linien nur in dem Diagrammbereich zu zeichen, werden hier die Bereiche für die Schlüsselanzeige (unten) und die Werteanzeige(oben) subtrahiert/addiert.<br />
Bei den vertikalen Linien geben wir soviele Linien aus wie es auch Balken geben wird. Auch hier wird nur im Diagrammbereich gezeichnet und der Bereich für die Beschriftungen weggelassen. Mit der Variable $space definieren wir auch gleich die Breite der einzelnen Balken. Da wir natürlich nur begrenzt Platz für die Werte haben, setzen wir diese in eine Relation.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// drawing the grid</span>
	<span style="color: #666666; font-style: italic;">//horizontal lines</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">imageline</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span>
				<span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_top</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #000088;">$pic_border_top</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$w</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_top</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #000088;">$pic_border_top</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$col_grid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">//vertical</span>
		<span style="color: #000088;">$space</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$w</span> <span style="color: #339933;">/</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newarray</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newarray</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>		<span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">imageline</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #000088;">$space</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$pic_border_top</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #000088;">$space</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$col_grid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span></pre></div></div>

<p>8. Das Zeichnen der Balken<br />
Nun gehen wir das neue Array von vorne beginnend durch und zeichnen jeden Balken.<br />
Da wir wieder nur in dem Diagrammbereich zeichnen wollen, ziehen wir wieder die die $pic_border_top und $pic_border_bottom von den jeweiligen Werten ab. Hier gibt es auch die Möglichkeit die Werte relativ zueinander, also in Prozent, oder in absoluten Zahlen darzustellen. Mit der Variablen $show_percent werden relative Werte ausgegeben mit der Variablen $show_number werden absolute Zahlen angezeigt. Auch gibt es die Möglichkeit die Schlüssel mit anzeigen zu lassen, oder eben nicht</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">// start drawing the datas</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span></pre></div></div>

<p>9. Da bisher keine einzige Ausgabe stattfand, können wir nun den Header senden und spezifizieren das es sich um ein png bild handelt. Danach geben wir aus dem erstellten Bild ein PNG aus und zerstören dies auch sogleich. So wird es asugegeben, jedoch nicht in einer datei gespeichert.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #666666; font-style: italic;">//tell the browser that this will be a png image.</span>
	<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-type: image/png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//finally generate the image;</span>
	<span style="color: #990000;">imagepng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">imagedestroy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>So nun haben wir eine fertige Funktion die uns ein Bild ausgibt, sobald wir diese aufrufen.<br />
Da die Funktion mit dem Header arbeitet, können wir diese nicht einfach in den Quellcode einbinden, sondern müssen den Weg über eine neue Datei gehen.<br />
Also erstellen wir uns eine neue Datei die wir als Bild von einer anderen Datei aufrufen können. Sollten keine Daten zum Anzeigen übergeben werden, bricht das Script ab. Ansonsten holt es sich das Datenarray aus der übergebenen URL. Mit <a href="http://php.net/serialize">serialize</a> lassen sich Arrays in einen String codieren. mit der Funktion <a href="http://php.net/unserialize">unserialize</a> genau das Gegenteil, es wird also aus einem codierten String wieder ein Array geformt. Um die Verarbeitung zu erleichtern, wird nur ein Array übergeben das aus 3 Teilen besteht,</p>
<ul>
<li>den anzuzeigenden Daten</li>
<li>der Höhe</li>
<li>der Breite</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">unserialize</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">stripslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$cont</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$b</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keys'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keys'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'label'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'label'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Sobald wir dies haben, können wir das ganze Zu einer kompletten Datei zusammensetzen.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> arraytograph<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #339933;">,</span><span style="color: #000088;">$w</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">300</span><span style="color: #339933;">,</span><span style="color: #000088;">$h</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span><span style="color: #000088;">$show_keys</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><span style="color: #000088;">$label</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Check if the array isn't empty</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$label</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>	
		<span style="color: #000088;">$show_precent</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$show_number</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$label</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'percent'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$show_precent</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$show_number</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$show_precent</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$show_number</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>	
	<span style="color: #000088;">$pic_border_top</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$pic_border_bottom</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// getting the keys from array</span>
	<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_keys</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
	<span style="color: #666666; font-style: italic;">// the keys should be displayed, so add a stripe for displaying the keys</span>
	<span style="color: #666666; font-style: italic;">// find the longest key. the length of string *6pixel per letter are added to the border bottom</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_keys</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$max</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>count<span style="color: #009900;">&#40;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max</span><span style="color: #339933;">&lt;</span>strlen<span style="color: #009900;">&#40;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$max</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000088;">$pic_border_bottom</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$max</span> <span style="color: #339933;">*</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">12</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// the number should be displayed at the top of the diagramm</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_number</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$max_num</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>count<span style="color: #009900;">&#40;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max_num</span><span style="color: #339933;">&lt;</span>strlen<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$max_num</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max_num</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">&gt;</span><span style="color: #000088;">$pic_border_top</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$pic_border_top</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$max_num</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_precent</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$pic_border_top</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">32</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Convert the values to percent values</span>
	<span style="color: #000088;">$hundredp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">max</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$newarray</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$el</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$newarray</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$el</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$hundredp</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// let's start with the image-creation</span>
	<span style="color: #000088;">$im</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$w</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//define colors.</span>
	<span style="color: #000088;">$col_background</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$col_grid</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x53</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x44</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x01</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$col_bars</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #208080;">0xb7</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x6b</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x1a</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$col_text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecolorallocate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//fill with background color</span>
		<span style="color: #990000;">imagefill</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$col_background</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// drawing the grid</span>
	<span style="color: #666666; font-style: italic;">//horizontal lines</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>	<span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">imageline</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span>
				<span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_top</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #000088;">$pic_border_top</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$w</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_top</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #000088;">$pic_border_top</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$col_grid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">//vertical</span>
		<span style="color: #000088;">$space</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$w</span> <span style="color: #339933;">/</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newarray</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newarray</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>		<span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">imageline</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #000088;">$space</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$pic_border_top</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #000088;">$space</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #339933;">,</span>
				<span style="color: #000088;">$col_grid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// start drawing the datas</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>count<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newarray</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$x1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$space</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$space</span><span style="color: #339933;">*</span><span style="color: #000088;">$i</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$y_bottom</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$y_top</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newarray</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_bottom</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #000088;">$pic_border_top</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #990000;">imagefilledrectangle</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y_bottom</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x1</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y_top</span><span style="color: #339933;">,</span> <span style="color: #000088;">$col_bars</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_number</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$show_precent</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$number</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">imagestringup</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x1</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y_top</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span><span style="color: #000088;">$number</span><span style="color: #339933;">,</span><span style="color: #000088;">$col_text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_precent</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #000088;">$show_number</span><span style="color: #009900;">&#41;</span>
			<span style="color: #990000;">imagestringup</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x1</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y_top</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newarray</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">,</span><span style="color: #000088;">$col_text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$show_keys</span><span style="color: #009900;">&#41;</span>
			<span style="color: #990000;">imagestringup</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x1</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$max</span><span style="color: #339933;">-</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keys</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$col_text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">//tell the browser that this will be a png image.</span>
	<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-type: image/png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//finally generate the image;</span>
	<span style="color: #990000;">imagepng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">imagedestroy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$im</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #990000;">unserialize</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">stripslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$cont</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$b</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keys'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$keys</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keys'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'label'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$label</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'label'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
arraytograph<span style="color: #009900;">&#40;</span><span style="color: #000088;">$cont</span><span style="color: #339933;">,</span><span style="color: #000088;">$b</span><span style="color: #339933;">,</span><span style="color: #000088;">$h</span><span style="color: #339933;">,</span><span style="color: #000088;">$keys</span><span style="color: #339933;">,</span><span style="color: #000088;">$label</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Nun sollte es möglich sein in einer neuen Datei, in der man das Diagramm anzeigen möchte unsere Diagrammdatei als Bildquelle einzubinden. Als zusätzliche Parameter an das Bild übergeben wir die oben genannten 3 Parameter (Daten, Höhe, Breite)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Stein&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">64</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Lehm&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">128</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Holz&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Nahrung&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">512</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Menschen&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">150</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keys'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'label'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'value'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;img src='arraytograph.php?data='.urlencode(serialize (<span style="color: #006699; font-weight: bold;">$datas</span>)).'&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">/&gt;</span> <span style="color: #0000ff;">';
?&gt;</span></pre></div></div>

<p><img class="aligncenter size-full wp-image-57" title="arraytograph_1" src="http://blog.snaky.org/wp-content/uploads/2008/07/arraytograph_1.png" alt="" width="150" height="200" /><br />
Nun sehen wir in unserer Datei ein schönes Diagramm <img src='http://blog.snaky.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Leicht lassen sich auch andere Möglichkeiten generieren</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Stein&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">64</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Lehm&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">128</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Holz&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Nahrung&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">512</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Menschen&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">150</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keys'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'label'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'percent'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;img src='arraytograph.php?data='.urlencode(serialize (<span style="color: #006699; font-weight: bold;">$datas</span>)).'&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span> <span style="color: #339933;">/&gt;</span> <span style="color: #0000ff;">';
?&gt;</span></pre></div></div>

<p><img src="http://blog.snaky.org/wp-content/uploads/2008/07/arraytograph_2.png" alt="" title="arraytograph_2" width="150" height="200" class="aligncenter size-full wp-image-58" /></p>
<p>oder auch</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Stein&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">64</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Lehm&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">128</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Holz&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Nahrung&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">512</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Menschen&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'h'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">150</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">150</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keys'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$datas</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'label'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'value'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;img src='arraytograph.php?data=&quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">serialize</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$datas</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;' &gt; &quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p><img src="http://blog.snaky.org/wp-content/uploads/2008/07/arraytograph_3.png" alt="" title="arraytograph_3" width="150" height="150" class="aligncenter size-full wp-image-59" /></p>
<p>Viel Spass damit <img src='http://blog.snaky.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<br/><br />
Erweiterung von <a href='http://gwphp.feudal-times.net/?p=6'>Gaming with PHP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/07/05/array-to-graph/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Info 2: Lab Sheet E &#8211; Lösungen</title>
		<link>http://blog.snaky.org/2008/07/05/info-2-lab-sheet-e-losungen/</link>
		<comments>http://blog.snaky.org/2008/07/05/info-2-lab-sheet-e-losungen/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 23:02:00 +0000</pubDate>
		<dc:creator>Seb</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Info 2]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[Lösung]]></category>
		<category><![CDATA[Scrabble]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=53</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/info.png" width="16" height="16" alt="" title="Informatik" /><img src="http://blog.snaky.org/wp-content/uploads/java.png" width="16" height="16" alt="" title="Java" /><br/>Für eventuelle spätere Generationen, die diesen &#8220;Quatsch&#8221; auch mitmachen müssen, gibt es im Anhang Lösungen von Ben und mir zum Labsheet E (SS08). Wenn ihr euch das ganze &#8220;Programm&#8221; ziehen wollt, findet ihr dieses auf der Homepage des Lehrstuhls. So long, Seb Download Code]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/info.png" width="16" height="16" alt="" title="Informatik" /><img src="http://blog.snaky.org/wp-content/uploads/java.png" width="16" height="16" alt="" title="Java" /><br/><p>Für eventuelle spätere Generationen, die diesen &#8220;Quatsch&#8221; auch mitmachen müssen, gibt es im Anhang Lösungen von Ben und mir zum <a href="http://ad.informatik.uni-freiburg.de/lehre/ss08/info2/lab/LabSheetE.pdf">Labsheet E (SS08)</a>.</p>
<p>Wenn ihr euch das ganze &#8220;Programm&#8221; ziehen wollt, findet ihr dieses auf der <a href="http://ad.informatik.uni-freiburg.de/lehre/ss08/info2/lab/">Homepage des Lehrstuhls</a>.</p>
<p>So long,<br />
Seb<br />
<center><a href="http://blog.snaky.org/wp-content/uploads/2008/07/wordscrambler.java"><img style="vertical-align:-14px; margin-right:5px;" src="http://blog.snaky.org/wp-content/uploads/download.png" alt="" /><span style='font-size:16px;font-weight:bold'>Download Code</span></a></center><br /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/07/05/info-2-lab-sheet-e-losungen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seiten Index (2)</title>
		<link>http://blog.snaky.org/2008/07/05/php-3-seiten-index-2/</link>
		<comments>http://blog.snaky.org/2008/07/05/php-3-seiten-index-2/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 22:23:27 +0000</pubDate>
		<dc:creator>Seb</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Index]]></category>
		<category><![CDATA[Seitenindex]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=49</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Da die Ausgabe des Algorithmus von Gestern noch nich das war, was ich eigentlich wollte, aber das Grundgerüst sehr gut war, habe ich diesen nun so modifiziert, dass er, wie schon der erste Versuch, eine Tabelle mit dem Seiten Index ausgibt. Diesmal werden aber alle Unterordner und auch das root-Verzeichnis durchsucht. Nur Väter des root-Verzeichnisses [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Da die Ausgabe des <a href="http://blog.snaky.org/2008/07/03/php-2-verzeichnisse-rekursiviterativ-durchsuchen/">Algorithmus von Gestern</a> noch nich das war, was ich eigentlich wollte, aber das <a href="http://de3.php.net/manual/de/function.opendir.php#83990">Grundgerüst</a> sehr gut war, habe ich diesen nun so modifiziert, dass er, wie schon der <a href="http://blog.snaky.org/2008/07/03/php-1-seitenindex-erstellen/">erste Versuch</a>, eine Tabelle mit dem Seiten Index ausgibt.<br />
Diesmal werden aber alle Unterordner und auch das root-Verzeichnis durchsucht. Nur Väter des root-Verzeichnisses werden nicht betrachtet.<br />
<span id="more-49"></span><br />
Diesmal werde ich zuerst den kompletten Code präsentieren und danach einzelne Teile besprechen. Ich hoffe, dass man dadurch ein besseres Verständnis des Codes bekommt, da mir die Variante mit den Code-Schnipseln nicht so zugesagt hat.</p>
<p>Here we go:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> createFileIndex<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$start</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">//catch error</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//initalize stuff</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;table cellpadding=0 cellspacing=0 border=1 rules=rows&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$dirs</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;tr&gt;&lt;th&gt;NAME&lt;/th&gt;
		&lt;th style='width:50px'&gt;&lt;/th&gt;
		&lt;th align=center&gt;SIZE&lt;/th&gt;
		&lt;th style='width:20px'&gt;&lt;/th&gt;
		&lt;th align =center&gt;TYPE&lt;/th&gt;
		&lt;th style='width:20px'&gt;&lt;/th&gt;
		&lt;th align=center&gt;DATE CREATED&lt;/th&gt;
		&lt;/tr&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//search iterative</span>
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">NULL</span> <span style="color: #339933;">!==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_pop</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$dirs</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$dh</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dh</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">//skip current directory and php-files</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$file</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'.'</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$file</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'..'</span> <span style="color: #339933;">||</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,-</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;php&quot;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">//if path is an directory</span>
			<span style="color: #666666; font-style: italic;">//=&gt; write into array, else write the files attributes into the table</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #000088;">$dirs</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">else</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">//get file infos</span>
				<span style="color: #000088;">$ftime</span> <span style="color: #339933;">=</span> <span style="color: #990000;">gmdate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;d.M.y&quot;</span><span style="color: #339933;">,</span><span style="color: #990000;">filemtime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
					<span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;</span>
					<span style="color: #339933;">.</span> <span style="color: #990000;">gmdate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;H:i:s&quot;</span><span style="color: #339933;">,</span><span style="color: #990000;">filemtime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$fsize</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">filesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color:#800080;">.0009765625</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$ftype</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strrchr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">//to table</span>
				<span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;tr&gt;
				&lt;td&gt;&lt;a href='<span style="color: #006699; font-weight: bold;">$path</span>'&gt;<span style="color: #006699; font-weight: bold;">$file</span>&lt;/a&gt;&lt;/td&gt;
				&lt;td&gt;&lt;/td&gt;
				&lt;td align=center&gt;<span style="color: #006699; font-weight: bold;">$fsize</span> KB&lt;/td&gt;
				&lt;td&gt;&lt;/td&gt;
				&lt;td align=center&gt;<span style="color: #006699; font-weight: bold;">$ftype</span>&lt;/td&gt;
				&lt;td&gt;&lt;/td&gt;
				&lt;td align=right&gt;<span style="color: #006699; font-weight: bold;">$ftime</span>&lt;/td&gt;
				&lt;/tr&gt;&quot;</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$output</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Der Algorithmus funktioniert wie folgt:</p>
<ol>
<li>Es wird ein Array &#8220;dirs&#8221; erstellt, in welches der Startpunkt (root) geschrieben wird.
<li>Das letzte Element aus &#8220;dirs&#8221; (ein Verzeichnis) wird herausgeholt und dabei entfernt, sollte das Entnehmen eines Elementes aus dem Array nicht möglich sein, wird der Algorithmus beendet.
<li>Das entnommene Verzeichnis wird nun auf der Suche nach Inhalten durchlaufen. Dabei wird unterschieden, ob es sich bei dem gefundenen Eintrag um ein Verzeichnis oder eine Datei handelt.
<ul>
<li>Fall 1 (Verzeichnis): Das gefundene Verzeichnis wird mit kompletten Pfad in das Array &#8220;dirs&#8221; geschrieben, um später auch in diesem Verzeichnis nach Datein zu suchen.
<li>Fall 2 (kein Verzeichnis): Es wurde eine Datei gefunden. Also holen wir uns von der Datei alle Attribute, die wir wünschen (Name, Größe, Typ, Erstelldatum), und schreiben alles in eine Tabelle.
</ul>
<li>Wenn das Verzeichnis komplett durchlaufen wurde, geht es wieder zu Punkt 2.
</ol>
<p>Als Ausgabe erhält man zum Beispiel:<br />
<a href='http://blog.snaky.org/wp-content/uploads/2008/07/php_ex_3.png'><img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_ex_3.png" alt="Beispiel Ausgabe" title="php_ex_3" width="481" height="169" class="alignnone size-full wp-image-50" /></a></p>
<p>Wie man sieht wurde auch schon ein bisschen an der Optik gefeilt.<br />
Es gibt das erste Mal eine Kopfzeile, anstatt in Bytes ist die Größenangabe in KB und auch das Erstelldatum ist ein Wenig übersichtlicher dargestellt.</p>
<p>Das wars mal wieder. Nächste Woche gehts weiter. Dann wird hoffentlich an der Optik gefeilt.</p>
<p>So long,<br />
Seb<br />
<center><a href="http://blog.snaky.org/wp-content/uploads/2008/07/dir_v2.txt"><img style="vertical-align:-14px; margin-right:5px;" src="http://blog.snaky.org/wp-content/uploads/download.png" alt="" /><span style='font-size:16px;font-weight:bold'>Download Code</span></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/07/05/php-3-seiten-index-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verzeichnisse rekursiv/iterativ durchsuchen</title>
		<link>http://blog.snaky.org/2008/07/03/php-2-verzeichnisse-rekursiviterativ-durchsuchen/</link>
		<comments>http://blog.snaky.org/2008/07/03/php-2-verzeichnisse-rekursiviterativ-durchsuchen/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 21:02:14 +0000</pubDate>
		<dc:creator>Seb</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Index]]></category>
		<category><![CDATA[Seitenindex]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=20</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Tja, da gibt man sich solche Mühe. Hat sich sogar schon einen Algorithmus zusammengebastelt und sucht nur noch die ganzen PHP-Methoden bzw. überprüft ob PHP das auch kann. Dann stöbert man ein bisschen in den Kommentaren zu den Funktionen.. ..und was entdeckt man? Einen drei Zeiler, der die Verzeichnisse komplett durchforstet und alle Unterverzeichnisse auflistet. [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Tja, da gibt man sich solche Mühe. Hat sich sogar schon einen Algorithmus zusammengebastelt und sucht nur noch die ganzen PHP-Methoden bzw. überprüft ob PHP das auch kann. Dann stöbert man ein bisschen in den Kommentaren zu den Funktionen..</p>
<p>..und was entdeckt man?<br />
Einen <strong>drei</strong> Zeiler, der die Verzeichnisse komplett durchforstet und alle Unterverzeichnisse auflistet.<br />
Klassischer Fall:<br />
<span id="more-20"></span></p>
<p><a href="http://blog.snaky.org/wp-content/uploads/2008/07/dogownd.jpg"><img class="alignnone size-full wp-image-21" title="dogownd" src="http://blog.snaky.org/wp-content/uploads/2008/07/dogownd.jpg" alt="" width="405" height="540" /></a></p>
<p>Der Vollständigkeit halber hier der Code-Schnipsel:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$it</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RecursiveDirectoryIterator<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'./'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// RecursiveIteratorIterator accepts the following modes:</span>
<span style="color: #666666; font-style: italic;">//     LEAVES_ONLY = 0  (default)</span>
<span style="color: #666666; font-style: italic;">//     SELF_FIRST  = 1</span>
<span style="color: #666666; font-style: italic;">//     CHILD_FIRST = 2</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> RecursiveIteratorIterator<span style="color: #009900;">&#40;</span><span style="color: #000088;">$it</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isDir</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$path</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Also hingenangen und ausprobiert.<br />
Doch zu früh gefreut. Es gibt zwar alle Pfade aus, aber leider nur die tiefstens Pfade. Gibt es z.B. das Verzeichnis /partent mit den Unterverzeichnissen /child_1 und /child_2 gibt die Methode /partent/child_1 und /partent/child_2 aus. Da aber auch im /parten-Verzeichnis Daten sein können, funktioniert das schonmal nicht so, wie wir uns das vorstellen.<br />
(Außerdem werden die Verzeichnisse mit \ ausgeben. Nicht sehr hilfreich.)</p>
<p>Aber nicht nur Romeo&amp;Julia hat ein Happy End. Auch meine Geschichte hat ein gutes Ende. Denn beim weiteren Durchstöbern der PHP-Funktionen fand ich diesen Code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
     <span style="color: #000000; font-weight: bold;">function</span> get_leaf_dirs<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span>
      <span style="color: #009900;">&#123;</span>
         <span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#41;</span>
         <span style="color: #009900;">&#123;</span>
               <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #339933;">!==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$d</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">read</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
               <span style="color: #009900;">&#123;</span>
                   <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">'.'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$entry</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">'..'</span><span style="color: #009900;">&#41;</span>
                   <span style="color: #009900;">&#123;</span>
                       <span style="color: #000088;">$entry</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$entry</span><span style="color: #339933;">;</span>
                       <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
                       <span style="color: #009900;">&#123;</span>
                           <span style="color: #000088;">$subdirs</span> <span style="color: #339933;">=</span> get_leaf_dirs<span style="color: #009900;">&#40;</span><span style="color: #000088;">$entry</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                           <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$subdirs</span><span style="color: #009900;">&#41;</span>
                             <span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_merge</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #339933;">,</span> <span style="color: #000088;">$subdirs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                           <span style="color: #b1b100;">else</span>
                             <span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$entry</span><span style="color: #339933;">;</span>
                       <span style="color: #009900;">&#125;</span>
                   <span style="color: #009900;">&#125;</span>
               <span style="color: #009900;">&#125;</span>
               <span style="color: #000088;">$d</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
         <span style="color: #009900;">&#125;</span>
         <span style="color: #b1b100;">return</span> <span style="color: #000088;">$array</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
&nbsp;
	  <span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'./'</span><span style="color: #339933;">;</span>
	  <span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span>get_leaf_dirs<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>..und was soll ich sagen. Ich bin so glücklich. Ich könnte weinen. Aber ich tus nich! Bin ja schließlich nen Mann.</p>
<p>Der nächste Schritt ist also den <a href="http://blog.snaky.org/2008/07/03/php-1-seitenindex-erstellen/">alten Code</a> anpassen.</p>
<p>So long,<br />
Seb</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/07/03/php-2-verzeichnisse-rekursiviterativ-durchsuchen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Seitenindex erstellen (1)</title>
		<link>http://blog.snaky.org/2008/07/03/php-1-seitenindex-erstellen/</link>
		<comments>http://blog.snaky.org/2008/07/03/php-1-seitenindex-erstellen/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 18:31:09 +0000</pubDate>
		<dc:creator>Seb</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Index]]></category>
		<category><![CDATA[Seitenindex]]></category>

		<guid isPermaLink="false">http://blog.snaky.org/?p=16</guid>
		<description><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/>Was PHP angeht bin ich eine alte  Jungfer. Zwar hab ich schon einen PHP-BOK-Kurs absolviert, aber da war ich mehr körperlich Anwesend (was bei meinem Aussehen durchaus eine Ehre für alle Anwesenden ist). Doch seit dieser Woche besitze ich WebSpace und der soll nich leer rumliegen. Also habe ich beschlossen eine kleine Internetpräsenz aufzubauen. Wie [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.snaky.org/wp-content/uploads/2008/07/php_16.png" width="16" height="16" alt="" title="PHP" /><br/><p>Was PHP angeht bin ich eine alte  Jungfer. Zwar hab ich schon einen PHP-BOK-Kurs absolviert, aber da war ich mehr körperlich Anwesend (was bei meinem Aussehen durchaus eine Ehre für alle Anwesenden ist).</p>
<p>Doch seit dieser Woche besitze ich WebSpace und der soll nich leer rumliegen. Also habe ich beschlossen eine kleine Internetpräsenz aufzubauen. Wie genau die aussehen soll, weiß ich noch nicht. Aber PHP muss her. Immerhin is das ein guter Anreiz sich endlich mal mit dem ganzen Kram vertraut zu machen.</p>
<p>Da (aus sicherheitstechnischen Gründen) man sich den Index auf dem WebSpace nicht anzeigen lassen kann, aber direkte Pfadeingaben viel zu anstrengend sind, muss eine Indexansicht her.</p>
<p>Glücklicherweise hat der Simon sogar sowas schonmal programmiert. Also fix mal den Quellcode zeigen lassen und anhand dessen eine Indexanzeige geschrieben.<br />
<span id="more-16"></span><br />
Damit alle etwas davon haben. Hier die einzelnen Teile des Programms:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'./'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">scandir</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$dir</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Das Verzeichnis in dem sich die PHP-Datei befindet, wird durchsucht und alle gefundenen Daten werden in ein Array geschrieben. Beispiel:</p>
<pre>Array ( [0] =&gt; . [1] =&gt; .. [2] =&gt; directory_1 [3] =&gt; index.php)</pre>
<p>Zur Übersicht werden alle Dateien die sich in den Verzeichnissen befinden in einer Tabelle dargestellt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;table border=&quot;</span><span style="color: #cc66cc;">0</span><span style="color: #0000ff;">&quot; cellspacing=&quot;</span><span style="color: #cc66cc;">0</span><span style="color: #0000ff;">&quot; cellpadding=&quot;</span><span style="color: #cc66cc;">0</span><span style="color: #0000ff;">&quot;&gt;&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Mit einer Schleife wird das Array durchlaufen.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;=</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p>Allerdings wollen wir nur die direkten Unterverzeichnisse des aktuellen Verzeichnisses durchsuchen. Daten aus dem aktuellen Verzeichnis sollen nicht angezeigt werden (wie z.B. unsere PHP-Datei, welche die Verzeichnisse durchsucht).</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;.&quot;</span> and <span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;..&quot;</span> and <span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;./&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,-</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">&quot;php&quot;</span> and <span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//...</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Mit diesem Abschnitt schließlich öffnen wir die gefundenen Verzeichnisse und suchen dort nach allen Dateien. PHP-Dateien und weitere Verzeichnisse werden nicht berücksichtigt.<br />
Zwar haben wir schon eine Tabelle erstellen, aber damit wir zusätzliche Informationen, wie Größe, Dateityp und Erstellungsdatum sehen können, müssen wir ihm Bauch der IF-Abfrage einige Operationen durchführen.</p>
<p>Es werden zuerst das Erstellungsdatum (Zeile 15) und danach die Dateigröße (Zeile 16 + 17) ermittelt.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$ftime</span> <span style="color: #339933;">=</span> <span style="color: #990000;">gmdate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;d M Y H:i:s&quot;</span><span style="color: #339933;">,</span><span style="color: #990000;">filemtime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;./<span style="color: #006699; font-weight: bold;">$files</span>[<span style="color: #006699; font-weight: bold;">$i</span>]/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$fsize</span> <span style="color: #339933;">=</span> <span style="color: #990000;">filesize</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;./<span style="color: #006699; font-weight: bold;">$files</span>[<span style="color: #006699; font-weight: bold;">$i</span>]/<span style="color: #006699; font-weight: bold;">$file</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$fsize</span> <span style="color: #339933;">=</span> <span style="color: #990000;">number_format</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fsize</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Damit man den Dateityp darstellen kann, muss man (leider, PHP stellt meines Wissens keine Funktion dafür bereit) einen kleinen Trick anwenden.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>18
19
20
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$fil2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$end</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$fil2</span><span style="color: #009900;">&#91;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fil2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$end</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$file</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$end</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Zu guter Letzt schreiben wir alle Daten der Datei in die Tabellenfehler und geben diese aus.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>21
22
23
24
25
26
27
28
29
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;tr&gt;
&lt;td&gt;&lt;a href='<span style="color: #006699; font-weight: bold;">$files</span>[<span style="color: #006699; font-weight: bold;">$i</span>]/<span style="color: #006699; font-weight: bold;">$file</span>'&gt;<span style="color: #006699; font-weight: bold;">$file</span>&lt;/a&gt;
&lt;td style='width:50pt'&gt;
&lt;td align=right&gt;<span style="color: #006699; font-weight: bold;">$fsize</span> Byte&lt;/td&gt;
&lt;td width=<span style="color: #000099; font-weight: bold;">\&quot;</span>40<span style="color: #000099; font-weight: bold;">\&quot;</span> align =<span style="color: #000099; font-weight: bold;">\&quot;</span>right<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #006699; font-weight: bold;">$end</span>&lt;/td&gt;
&lt;td width=<span style="color: #000099; font-weight: bold;">\&quot;</span>175<span style="color: #000099; font-weight: bold;">\&quot;</span> align=<span style="color: #000099; font-weight: bold;">\&quot;</span>right<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;<span style="color: #006699; font-weight: bold;">$ftime</span>&lt;/td&gt;
&lt;/tr&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$output</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Dies (Zeile 15 &#8211; 29) wird für jedes Verzeichnis durchgeführt. Mit einem</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>30
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>schließen wir die Tabelle wieder. Eine so erzeugte Tabelle könnte z. B. so aussehen:</p>
<p><a href="http://blog.snaky.org/wp-content/uploads/2008/07/php_ex_1.png"><img class="aligncenter size-medium wp-image-17" title="php_ex_1" src="http://blog.snaky.org/wp-content/uploads/2008/07/php_ex_1-300x68.png" alt="" width="300" height="68" /></a><br />
Nicht sehr schön. Aber fürs Erste ausreichend. Verbesserungen kommen dann in späteren Einträgen. Wenn ihr Ideen habt, was eine Indexseite außer Suchen, alle Unterordner, usw. noch können muss, immer her mit den Vorschlägen!</p>
<p>So long,<br />
Seb<br />
<center><a href="http://blog.snaky.org/wp-content/uploads/2008/07/dir_v01.txt"><img style="vertical-align:-14px; margin-right:5px;" src="http://blog.snaky.org/wp-content/uploads/download.png" alt="" /><span style='font-size:16px;font-weight:bold'>Download Code</span></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snaky.org/2008/07/03/php-1-seitenindex-erstellen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
