<?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>Andreas Droesch</title>
	<atom:link href="http://andreas.droesch.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://andreas.droesch.de</link>
	<description>Weblog und Portfolio...</description>
	<lastBuildDate>Fri, 23 Oct 2009 21:12:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP: Dateien und Ordner auflisten</title>
		<link>http://andreas.droesch.de/2009/10/php-dateien-und-ordner-auflisten/</link>
		<comments>http://andreas.droesch.de/2009/10/php-dateien-und-ordner-auflisten/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 21:12:14 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Dateien]]></category>
		<category><![CDATA[Dateityp]]></category>
		<category><![CDATA[Ordner]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=602</guid>
		<description><![CDATA[Diese Funktion liest die Namen aller Dateien und Ordner in einem Verzeichnis ein und gibt diese in einem Array zurück, welches danach etwa mit einer Schleife aufgelistet werden kann.
Die Dateien können zusätzlich auf bestimmte Typen beschränkt und die Auflistung von Ordner deaktiviert werden.

&#60;?php//&#160;Dateien&#160;und&#160;Ordner&#160;aus&#160;einem&#160;Verzeichnis&#160;ermittelnfunction&#160;list_dir($path,&#160;$extensions&#160;=&#160;'',&#160;$list_folder&#160;=&#160;false)&#160;{&#160;&#160;//&#160;Prüfen&#160;ob&#160;das&#160;Verzeichnis&#160;existiert&#160;&#160;if&#160;(!file_exists($path))&#160;{&#160;&#160;&#160;&#160;return&#160;array();&#160;&#160;}&#160;&#160;//&#160;Liste&#160;erlaubter&#160;Erweiterungen&#160;erstellen&#160;&#160;if&#160;(!empty($extensions))&#160;{&#160;&#160;&#160;&#160;$extensions&#160;=&#160;explode(',',&#160;$extensions);&#160;&#160;}&#160;&#160;//&#160;Pfad&#160;um&#160;Backslash&#160;am&#160;Schluss&#160;ergänzen&#160;&#160;$path&#160;=&#160;rtrim($path,&#160;'/')&#160;.&#160;'/';&#160;&#160;//&#160;Ordner&#160;öffnen&#160;und&#160;alle&#160;Einträge&#160;durchlaufen&#160;&#160;$dh&#160;=&#160;opendir($path);&#160;&#160;$list&#160;=&#160;array();&#160;&#160;while&#160;($file&#160;=&#160;readdir($dh))&#160;{&#160;&#160;&#160;&#160;$is_dir&#160;=&#160;is_dir($path&#160;.&#160;$file);&#160;&#160;&#160;&#160;//&#160;Ordner&#160;überspringen,&#160;falls&#160;nicht&#160;erwünscht&#160;&#160;&#160;&#160;if&#160;((!$list_folder&#160;&#38;&#38;&#160;$is_dir)&#160;&#124;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;Sprungmarken&#160;überspringen&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;($file&#160;==&#160;'.'&#160;&#124;&#124;&#160;$file&#160;==&#160;'..')&#160;&#124;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;Unerwünschte&#160;Dateitypen&#160;überspringen&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;($extensions&#160;&#38;&#38;&#160;!$is_dir&#160;&#38;&#38;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;!in_array(strtolower(substr(strrchr($file,&#160;'.'),&#160;1)),&#160;$extensions)))&#160;{&#160;&#160;&#160;&#160;&#160;&#160;continue;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;//&#160;Datei&#160;zur&#160;Liste&#160;hinzufügen&#160;&#160;&#160;&#160;$list[]&#160;=&#160;$file;&#160;&#160;}&#160;&#160;//&#160;Ordner&#160;schließen&#160;und&#160;Liste&#160;zurückgeben&#160;&#160;closedir($dh);&#160;&#160;return&#160;$list;}?&#62;


Als Parameter erwartet die Funktion den Pfad des auszulesenden Verzeichnisses, relativ zum Script. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Diese Funktion liest die Namen aller Dateien und Ordner in einem Verzeichnis ein und gibt diese in einem Array zurück, welches danach etwa mit einer Schleife aufgelistet werden kann.</p>
<p style="text-align: justify;">Die Dateien können zusätzlich auf bestimmte Typen beschränkt und die Auflistung von Ordner deaktiviert werden.</p>
<p><span id="more-602"></span><div class="wpsp_code_div"><code><span style="color: #000000">
<span style="color: #007700">&lt;?</span><span style="color: #0000BB">php<br /><br /></span><span style="color: #FF9900">//&nbsp;Dateien&nbsp;und&nbsp;Ordner&nbsp;aus&nbsp;einem&nbsp;Verzeichnis&nbsp;ermitteln<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">list_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$extensions&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$list_folder&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Prüfen&nbsp;ob&nbsp;das&nbsp;Verzeichnis&nbsp;existiert<br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!</span><span style="color: #0000BB">file_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;array();<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Liste&nbsp;erlaubter&nbsp;Erweiterungen&nbsp;erstellen<br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(!empty(</span><span style="color: #0000BB">$extensions</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$extensions&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">','</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$extensions</span><span style="color: #007700">);<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Pfad&nbsp;um&nbsp;Backslash&nbsp;am&nbsp;Schluss&nbsp;ergänzen<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$path&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">rtrim</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'/'</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">'/'</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Ordner&nbsp;öffnen&nbsp;und&nbsp;alle&nbsp;Einträge&nbsp;durchlaufen<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$dh&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">opendir</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$list&nbsp;</span><span style="color: #007700">=&nbsp;array();<br />&nbsp;&nbsp;while&nbsp;(</span><span style="color: #0000BB">$file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">readdir</span><span style="color: #007700">(</span><span style="color: #0000BB">$dh</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$is_dir&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">is_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">$path&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$file</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Ordner&nbsp;überspringen,&nbsp;falls&nbsp;nicht&nbsp;erwünscht<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;((!</span><span style="color: #0000BB">$list_folder&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;</span><span style="color: #0000BB">$is_dir</span><span style="color: #007700">)&nbsp;||<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Sprungmarken&nbsp;überspringen<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$file&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">'.'&nbsp;</span><span style="color: #007700">||&nbsp;</span><span style="color: #0000BB">$file&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">'..'</span><span style="color: #007700">)&nbsp;||<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Unerwünschte&nbsp;Dateitypen&nbsp;überspringen<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$extensions&nbsp;</span><span style="color: #007700">&amp;&amp;&nbsp;!</span><span style="color: #0000BB">$is_dir&nbsp;</span><span style="color: #007700">&amp;&amp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!</span><span style="color: #0000BB">in_array</span><span style="color: #007700">(</span><span style="color: #0000BB">strtolower</span><span style="color: #007700">(</span><span style="color: #0000BB">substr</span><span style="color: #007700">(</span><span style="color: #0000BB">strrchr</span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'.'</span><span style="color: #007700">),&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">)),&nbsp;</span><span style="color: #0000BB">$extensions</span><span style="color: #007700">)))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Datei&nbsp;zur&nbsp;Liste&nbsp;hinzufügen<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$list</span><span style="color: #007700">[]&nbsp;=&nbsp;</span><span style="color: #0000BB">$file</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Ordner&nbsp;schließen&nbsp;und&nbsp;Liste&nbsp;zurückgeben<br />&nbsp;&nbsp;</span><span style="color: #0000BB">closedir</span><span style="color: #007700">(</span><span style="color: #0000BB">$dh</span><span style="color: #007700">);<br />&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$list</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
<p style="text-align: justify;">Als Parameter erwartet die Funktion den Pfad des auszulesenden Verzeichnisses, relativ zum Script. Optional kann als zweiter Parameter eine Liste zugelassener Dateierweiterungen angegeben werden (einzelne Erweiterungen durch ein Komma trennen). Der dritte Parameter ist ebenfalls optional und aktiviert die Auflistung von Ordnern.</p>
<p style="text-align: justify;">Nachfolgend noch ein paar Beispielaufrufe mit verschiedenen Optionen:</p>
<div class="wpsp_code_div"><code><span style="color: #000000">
<span style="color: #007700">&lt;?</span><span style="color: #0000BB">php<br /><br /></span><span style="color: #FF9900">//&nbsp;Beispielaufruf&nbsp;1:&nbsp;Alle&nbsp;Dateien<br /></span><span style="color: #0000BB">$path&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'uploads'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$files&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">list_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">);<br />echo&nbsp;</span><span style="color: #DD0000">'&lt;ul&gt;'</span><span style="color: #007700">;<br />foreach&nbsp;(</span><span style="color: #0000BB">$files&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$file</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">'&lt;li&gt;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$file&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;/li&gt;'</span><span style="color: #007700">;<br />}<br />echo&nbsp;</span><span style="color: #DD0000">'&lt;/ul&gt;'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF9900">//&nbsp;Beispielaufruf&nbsp;2:&nbsp;Alle&nbsp;Dateien&nbsp;und&nbsp;Ordner<br /></span><span style="color: #0000BB">$files&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">list_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">''</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF9900">//&nbsp;Beispielaufruf&nbsp;3:&nbsp;Nur&nbsp;HTML&nbsp;und&nbsp;PHP&nbsp;Dateien<br /></span><span style="color: #0000BB">$files&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">list_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'html,php'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF9900">//&nbsp;Beispielaufruf&nbsp;4:&nbsp;Nur&nbsp;HTML&nbsp;und&nbsp;PHP&nbsp;Dateien,&nbsp;sowie&nbsp;Ordner<br /></span><span style="color: #0000BB">$files&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">list_dir</span><span style="color: #007700">(</span><span style="color: #0000BB">$path</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'html,php'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/php-dateien-und-ordner-auflisten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS: Stylesheet Datei wechseln</title>
		<link>http://andreas.droesch.de/2009/10/js-stylesheet-datei-wechseln/</link>
		<comments>http://andreas.droesch.de/2009/10/js-stylesheet-datei-wechseln/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 21:08:01 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Beispiel]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=576</guid>
		<description><![CDATA[Dieses Beispiel basiert auf der Fragen nach einem Wechsler für CSS Dateien, um den Besuchern die Möglichkeit zu geben, aus mehreren Stylesheets zu wählen. Die Auswahl wird dabei für 30 Tage in einem Cookie gespeichert und beim nächsten Anzeigen der Seite automatisch verwendet.
Demo anschauen

Die Demo wechselt zwischen zwei einfachen CSS Dateien, die erste mit einem [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Dieses Beispiel basiert auf der Fragen nach einem Wechsler für CSS Dateien, um den Besuchern die Möglichkeit zu geben, aus mehreren Stylesheets zu wählen. Die Auswahl wird dabei für 30 Tage in einem Cookie gespeichert und beim nächsten Anzeigen der Seite automatisch verwendet.</p>
<p style="text-align: center;"><strong><a href="http://andreas.droesch.de/files/codesnippets/js_stylesheet_datei_wechseln/">Demo anschauen</a></strong></p>
<p><span id="more-576"></span></p>
<p style="text-align: justify;">Die Demo wechselt zwischen zwei einfachen CSS Dateien, die erste mit einem weißen, die zweite mit einem gelben Hintergrund als Angabe im <em>body</em>:</p>
<div class="wpsp_code_div"><code><span style="color:#000">&lt;<span style="color:#00F;font-weight:bold">!DOCTYPE</span> <span style="font-weight:bold">html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;<br />
&nbsp;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span>&gt;<br />
&lt;<span style="color:#00F;font-weight:bold">html</span>&gt;<br />
&lt;<span style="color:#00F;font-weight:bold">head</span>&gt;<br />
&lt;<span style="color:#00F;font-weight:bold">title</span>&gt;Style Datei wechseln&lt;<span style="color:#00F;font-weight:bold">/title</span>&gt;<br />
&lt;<span style="color:#00F;font-weight:bold">link</span> <span style="font-weight:bold">type=</span><span style="color:#00F">&quot;text/css&quot;</span> <span style="font-weight:bold">rel=</span><span style="color:#00F">&quot;stylesheet&quot;</span> <span style="font-weight:bold">title=</span><span style="color:#00F">&quot;style_switch&quot;</span> <span style="font-weight:bold">href=</span><span style="color:#00F">&quot;style1.css&quot;</span> <span style="font-weight:bold">/</span>&gt;<br />
<span style="background-color:#FFFFEC">&lt;script type=&quot;text/javascript&quot;&gt;</span><span style="color:#000"><br />
<span style="color:#000080">// CSS Datei wechseln</span><br />
<span style="font-weight:bold">function</span> switch_style(css_file) {<br />
&nbsp;&nbsp;<span style="font-weight:bold">var</span> link_list = document.getElementsByTagName(<span style="color:#00F">'link'</span>);<br />
&nbsp;&nbsp;<span style="font-weight:bold">for</span> (<span style="font-weight:bold">var</span> i = <span style="color:#800000">0</span>, l = link_list.length; i &lt; l; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold">if</span> (link_list[i].getAttribute(<span style="color:#00F">'rel'</span>) == <span style="color:#00F">'stylesheet'</span> &amp;&amp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link_list[i].getAttribute(<span style="color:#00F">'title'</span>) == <span style="color:#00F">'style_switch'</span>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link_list[i].href = css_file + <span style="color:#00F">'.css'</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<span style="color:#000080">// Cookie setzen</span><br />
&nbsp;&nbsp;<span style="font-weight:bold">var</span> time = <span style="font-weight:bold">new</span> Date();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:#000080">// Aktuelles Datum&auml;</span><br />
&nbsp;&nbsp;time = <span style="font-weight:bold">new</span> Date(time.getTime() + <span style="color:#800000">2592000000</span>); <span style="color:#000080">// +30 Tage</span><br />
&nbsp;&nbsp;time = time.toGMTString();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:#000080">// Ausgabe formatieren</span><br />
&nbsp;&nbsp;document.cookie = <span style="color:#00F">'css_switch='</span> + css_file + <span style="color:#00F">'; expires='</span> + time + <span style="color:#00F">';'</span>;<br />
}<br />
<br />
<span style="color:#000080">// Style beim Laden aus Cookie vorw&auml;hlen</span><br />
<span style="font-weight:bold">function</span> check_style() {<br />
&nbsp;&nbsp;<span style="font-weight:bold">if</span> (document.cookie) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold">if</span> (document.cookie.match(<span style="color:#00F">'css_switch=([^;]*)'</span>)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch_style(RegExp.$<span style="color:#800000">1</span>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
}<br />
</span><span style="background-color:#FFFFEC">&lt;/script&gt;</span><br />
&lt;<span style="color:#00F;font-weight:bold">/head</span>&gt;<br />
&lt;<span style="color:#00F;font-weight:bold">body</span> <span style="font-weight:bold">onload=</span><span style="color:#00F">&quot;check_style()&quot;</span>&gt;<br />
<br />
&lt;<span style="color:#00F;font-weight:bold">div</span> <span style="font-weight:bold">style=</span><span style="color:#00F">&quot;text-align:center&quot;</span>&gt;<br />
<br />
&nbsp;&nbsp;&lt;<span style="color:#00F;font-weight:bold">b</span>&gt;Styleheet Datei wechseln&lt;<span style="color:#00F;font-weight:bold">/b</span>&gt;<br />
<br />
&nbsp;&nbsp;&lt;<span style="color:#00F;font-weight:bold">br</span> <span style="font-weight:bold">/</span>&gt;&lt;<span style="color:#00F;font-weight:bold">br</span> <span style="font-weight:bold">/</span>&gt;<br />
<br />
&nbsp;&nbsp;&lt;<span style="color:#00F;font-weight:bold">a</span> <span style="font-weight:bold">href=</span><span style="color:#00F">&quot;#&quot;</span> <span style="font-weight:bold">onclick=</span><span style="color:#00F">&quot;switch_style('style1')&quot;</span>&gt;Style 1 (weiß)&lt;<span style="color:#00F;font-weight:bold">/a</span>&gt; -<br />
&nbsp;&nbsp;&lt;<span style="color:#00F;font-weight:bold">a</span> <span style="font-weight:bold">href=</span><span style="color:#00F">&quot;#&quot;</span> <span style="font-weight:bold">onclick=</span><span style="color:#00F">&quot;switch_style('style2')&quot;</span>&gt;Style 2 (gelb)&lt;<span style="color:#00F;font-weight:bold">/a</span>&gt;<br />
<br />
&lt;<span style="color:#00F;font-weight:bold">/div</span>&gt;<br />
<br />
&lt;<span style="color:#00F;font-weight:bold">/body</span>&gt;<br />
&lt;<span style="color:#00F;font-weight:bold">/html</span>&gt;</span></code></div>
<p style="text-align: justify;">Durch Klick auf einen der Links wird die Funktion <strong>switch_style()</strong> aufgerufen. Diese erwartet als Parameter den Namen der CSS Datei (kann auch mit Pfadangabe sein, jedoch immer ohne .css Erweiterung). Die gewählte Datei wird dann automatisch in diesen <em>link</em>-Tag eingefügt:</p>
<div class="wpsp_code_div"><code><span style="color:#000">&lt;<span style="color:#00F;font-weight:bold">link</span> <span style="font-weight:bold">type=</span><span style="color:#00F">&quot;text/css&quot;</span> <span style="font-weight:bold">rel=</span><span style="color:#00F">&quot;stylesheet&quot;</span> <span style="font-weight:bold">title=</span><span style="color:#00F">&quot;style_switch&quot;</span> <span style="font-weight:bold">href=</span><span style="color:#00F">&quot;style1.css&quot;</span> <span style="font-weight:bold">/</span>&gt;</span></code></div>
<p style="text-align: justify;">Durch das <strong>title</strong> Attribut mit dem Wert &#8220;style_switch&#8221; wird sichergestellt, dass die CSS Datei auch wirklich nur in diesem und keinem anderen (falls mehrere CSS Dateien gleichzeitig eingebunden werden) gewechselt wird.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/js-stylesheet-datei-wechseln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WoWG: Template &#8220;Wrath of the Lich King&#8221;</title>
		<link>http://andreas.droesch.de/2009/10/wowg-template-wrath-of-the-lich-king/</link>
		<comments>http://andreas.droesch.de/2009/10/wowg-template-wrath-of-the-lich-king/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 00:18:16 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Projekt-News]]></category>
		<category><![CDATA[WoWGilden]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=567</guid>
		<description><![CDATA[WoWGilden hat ein neues Template zum Thema &#8220;Wrath of the Lich King&#8221; spendiert bekommen, hier ein paar Screenshots:

Dies steht ab sofort in der Gildenadmin zur Auswahl, inklusive den drei Header- / Footerbildern, wie sie in den Screenshots zu sehen sind.
Mal sehen was als nächstes ansteht, vielleicht das Umfragesystem fürs Forum, hier jedenfalls erstmal noch der [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">WoWGilden hat ein neues Template zum Thema &#8220;Wrath of the Lich King&#8221; spendiert bekommen, hier ein paar Screenshots:</p>
<p style="text-align:center"><a rel="lightbox[t2]" href="http://wowgilden.net/~template/t2/c1/gfx/preview/big_1.jpg" target="_blank"><img style="margin:10px 0" title="Template WotLK" src="http://wowgilden.net/~template/t2/c1/gfx/preview/thumb_1.jpg" alt="Template WotLK" width="150" height="81" /></a><a rel="lightbox[t2]" href="http://wowgilden.net/~template/t2/c1/gfx/preview/big_2.jpg" target="_blank"><img style="margin:10px" title="Template WotLK" src="http://wowgilden.net/~template/t2/c1/gfx/preview/thumb_2.jpg" alt="Template WotLK" width="150" height="81" /></a><a rel="lightbox[t2]" href="http://wowgilden.net/~template/t2/c1/gfx/preview/big_3.jpg" target="_blank"><img style="margin:10px 0" title="Template WotLK" src="http://wowgilden.net/~template/t2/c1/gfx/preview/thumb_3.jpg" alt="Template WotLK" width="150" height="81" /></a></p>
<p style="text-align:justify">Dies steht ab sofort in der Gildenadmin zur Auswahl, inklusive den drei Header- / Footerbildern, wie sie in den Screenshots zu sehen sind.</p>
<p style="text-align: justify;">Mal sehen was als nächstes ansteht, vielleicht das Umfragesystem fürs Forum, hier jedenfalls erstmal noch der Link zur <strong><a href="http://wowgilden.net/forum-topic_1080.html" target="_blank">offiziellen Newsmeldung</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/wowg-template-wrath-of-the-lich-king/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WoWG: Zweite Seitenleiste/Widgetsystem</title>
		<link>http://andreas.droesch.de/2009/10/wowg-zweite-seitenleistewidgetsystem/</link>
		<comments>http://andreas.droesch.de/2009/10/wowg-zweite-seitenleistewidgetsystem/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 16:03:56 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Projekt-News]]></category>
		<category><![CDATA[WoWGilden]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=559</guid>
		<description><![CDATA[Gestern bekam WoWGilden ein größeres Update spendiert. Neben einer zweiten Seitenleiste gibt es nun auch Widgetsystem. Über die Gildenadmin lassen sich die Seitenleisten nun recht einfach sortieren und konfigurieren, hier ein kleiner Screenshot:


Die Seitenleisten sind flexibel, das bedeutet wenn eine Leiste keine aktiven Widgets mehr enthält wird diese automatisch auf der Gildenseite ausgeblendet. So kann [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Gestern bekam WoWGilden ein größeres Update spendiert. Neben einer zweiten Seitenleiste gibt es nun auch Widgetsystem. Über die Gildenadmin lassen sich die Seitenleisten nun recht einfach sortieren und konfigurieren, hier ein kleiner Screenshot:</p>
<p style="text-align:center"><img style="margin:10px 0" title="Widget Admin" src="http://andreas.droesch.de/files/wowgilden/news/widget_admin.png" alt="Widget Admin" width="506" height="157" /></p>
<p><span id="more-559"></span></p>
<p style="text-align: justify;">Die Seitenleisten sind flexibel, das bedeutet wenn eine Leiste keine aktiven Widgets mehr enthält wird diese automatisch auf der Gildenseite ausgeblendet. So kann jeder selbst zwischen einem zwei- oder dreispaltigen Layout wählen.</p>
<p style="text-align: justify;">Als weitere Updates gibt es nun bei jedem Eintrag in der Pinnwand auf den Profilseiten eine kleine Infobox, welche denjenigen über den neuen Eintrag informiert und eine kleine Statistik auf der Hauptseite, hier noch ein Screenshot:</p>
<p style="text-align:center"><img style="margin:10px 0" title="Mini Statistik" src="http://andreas.droesch.de/files/wowgilden/news/mini_statistik.png" alt="Mini Statistik" width="272" height="154" /></p>
<p style="text-align: justify;">Und zum Schluss wie immer der Link zur<strong> <a href="http://wowgilden.net/forum-topic_1055.html" target="_blank">offiziellen Newsmeldung</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/wowg-zweite-seitenleistewidgetsystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS: Runden mit Nachkommastelle</title>
		<link>http://andreas.droesch.de/2009/10/js-runden-mit-nachkommastelle/</link>
		<comments>http://andreas.droesch.de/2009/10/js-runden-mit-nachkommastelle/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 15:12:29 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Runden]]></category>
		<category><![CDATA[Zahlen]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=548</guid>
		<description><![CDATA[JavaScript bietet von sich aus keine Funktion zum Runden einer Dezimalzahl mit Nach&#173;kommastelle, sondern rundet immer auf eine Ganzzahl. Dafür gibt es hier nun drei kleine Funktionen zum kaufmännischen Runden, Aufrunden und Abrunden mit einer beliebigen Anzahl an Nachkommastellen:

// Kaufm&#228;nnisches Runden mit Nachkommastelle
function round_f(value, prec) {
&#160;&#160;var f = Math.pow(10, prec);
&#160;&#160;return (Math.round(value * f) / f);
}

// [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">JavaScript bietet von sich aus keine Funktion zum Runden einer Dezimalzahl mit Nach&shy;kommastelle, sondern rundet immer auf eine Ganzzahl. Dafür gibt es hier nun drei kleine Funktionen zum kaufmännischen Runden, Aufrunden und Abrunden mit einer beliebigen Anzahl an Nachkommastellen:</p>
<p><span id="more-548"></span><br />
<div class="wpsp_code_div"><code><span style="color:#000"><span style="color:#000080">// Kaufm&auml;nnisches Runden mit Nachkommastelle</span><br />
<span style="font-weight:bold">function</span> round_f(value, prec) {<br />
&nbsp;&nbsp;<span style="font-weight:bold">var</span> f = Math.pow(<span style="color:#800000">10</span>, prec);<br />
&nbsp;&nbsp;<span style="font-weight:bold">return</span> (Math.round(value * f) / f);<br />
}<br />
<br />
<span style="color:#000080">// Aufrunden mit Nachkommastelle</span><br />
<span style="font-weight:bold">function</span> ceil_f(value, prec) {<br />
&nbsp;&nbsp;<span style="font-weight:bold">var</span> f = Math.pow(<span style="color:#800000">10</span>, prec);<br />
&nbsp;&nbsp;<span style="font-weight:bold">return</span> (Math.ceil(value * f) / f);<br />
}<br />
<br />
<span style="color:#000080">// Abrunden mit Nachkommastelle</span><br />
<span style="font-weight:bold">function</span> floor_f(value, prec) {<br />
&nbsp;&nbsp;<span style="font-weight:bold">var</span> f = Math.pow(<span style="color:#800000">10</span>, prec);<br />
&nbsp;&nbsp;<span style="font-weight:bold">return</span> (Math.floor(value * f) / f);<br />
}</span></code></div>
<p>Hier noch ein paar Beispielaufrufe:</p>
<div class="wpsp_code_div"><code><span style="color:#000"><span style="color:#000080">// Beispielaufruf 1: Kaufm&auml;nnisches Runden</span><br />
<span style="font-weight:bold">var</span> x = round_f(<span style="color:#800000">12.343</span>, <span style="color:#800000">0</span>); <span style="color:#000080">// =&gt; 12</span><br />
<span style="font-weight:bold">var</span> x = round_f(<span style="color:#800000">12.343</span>, <span style="color:#800000">2</span>); <span style="color:#000080">// =&gt; 12.34</span><br />
<span style="font-weight:bold">var</span> x = round_f(<span style="color:#800000">12.345</span>, <span style="color:#800000">2</span>); <span style="color:#000080">// =&gt; 12.35</span><br />
<br />
<span style="color:#000080">// Beispielaufruf 2: Aufrunden</span><br />
<span style="font-weight:bold">var</span> x = ceil_f(<span style="color:#800000">12.343</span>, <span style="color:#800000">0</span>); <span style="color:#000080">// =&gt; 13</span><br />
<span style="font-weight:bold">var</span> x = ceil_f(<span style="color:#800000">12.345</span>, <span style="color:#800000">2</span>); <span style="color:#000080">// =&gt; 12.35</span><br />
<br />
<span style="color:#000080">// Beispielaufruf 3: Abrunden</span><br />
<span style="font-weight:bold">var</span> x = floor_f(<span style="color:#800000">12.343</span>, <span style="color:#800000">0</span>); <span style="color:#000080">// =&gt; 12</span><br />
<span style="font-weight:bold">var</span> x = floor_f(<span style="color:#800000">12.345</span>, <span style="color:#800000">2</span>); <span style="color:#000080">// =&gt; 12.34</span></span></code></div>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/js-runden-mit-nachkommastelle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WoWG: Farbschemen fürs Templatesystem</title>
		<link>http://andreas.droesch.de/2009/10/wowg-farbschemen-furs-templatesystem/</link>
		<comments>http://andreas.droesch.de/2009/10/wowg-farbschemen-furs-templatesystem/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 00:58:35 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Projekt-News]]></category>
		<category><![CDATA[WoWGilden]]></category>
		<category><![CDATA[Farbschemen]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=542</guid>
		<description><![CDATA[Heute hatte ich mir das Templatesystem vorgenommen und eine Unterteilung in Farbschemen eingefügt. Ein Template stellt nun sozusagen immer nur ein Layout dar und kann durch verschiedenen Farbschemen entsprechend gestaltet werden.
Aktuell ändert sich dadurch nicht viel, zumindest optisch nicht, da es bisher nur zwei Templates gab, welche auf einem Layout basierten und nun sozusagen zusammengeführt [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Heute hatte ich mir das Templatesystem vorgenommen und eine Unterteilung in Farbschemen eingefügt. Ein Template stellt nun sozusagen immer nur ein Layout dar und kann durch verschiedenen Farbschemen entsprechend gestaltet werden.</p>
<p style="text-align: justify;">Aktuell ändert sich dadurch nicht viel, zumindest optisch nicht, da es bisher nur zwei Templates gab, welche auf einem Layout basierten und nun sozusagen zusammengeführt wurden. Doch für zukünftige Anpassungen und neue Templates erleichtert dieses System einem die Arbeit <img src='http://andreas.droesch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-542"></span></p>
<p style="text-align: justify;">Hier noch der Link zur <strong><a href="http://wowgilden.net/forum-topic_1025.html" target="_blank">offiziellen Newsmeldung</a></strong>.</p>
<p style="text-align: justify;">Als nächstes steht die Erweiterung der Templates um eine zweite Seitenleiste an. Diese wird dann (wie auch die bisherige Leiste) durch ein Widgetsystem mit Inhalten gefüllt werden können.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/wowg-farbschemen-furs-templatesystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WoWG: DKP Basissystem integriert</title>
		<link>http://andreas.droesch.de/2009/10/wow-dkp-basissystem-integriert/</link>
		<comments>http://andreas.droesch.de/2009/10/wow-dkp-basissystem-integriert/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 01:13:33 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Projekt-News]]></category>
		<category><![CDATA[WoWGilden]]></category>
		<category><![CDATA[DKP]]></category>
		<category><![CDATA[Raidplaner]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=526</guid>
		<description><![CDATA[Nachdem das Formular zur Punktevergabe schon vor einiger Zeit fertig gestellt war, ist nun auch eine Basisversion der allgemeinen DKP Übersicht im Raidplaner fertig geworden und die internen Funktionen wurden eingefügt.
Ein Bild des Vergabeformular hatte ich ja damals schon gepostet, an diesem hat sich nicht mehr viel verändert.
Alle Informationen darüber, sowie zu weiteren Updates gibts [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Nachdem das Formular zur Punktevergabe schon vor einiger Zeit fertig gestellt war, ist nun auch eine Basisversion der allgemeinen DKP Übersicht im Raidplaner fertig geworden und die internen Funktionen wurden eingefügt.</p>
<p style="text-align: justify;">Ein Bild des Vergabeformular hatte ich ja <a href="http://andreas.droesch.de/2009/09/wowg-dkp-vergabeformular-fertig/">damals</a> schon gepostet, an diesem hat sich nicht mehr viel verändert.</p>
<p style="text-align: justify;">Alle Informationen darüber, sowie zu weiteren Updates gibts in der <strong><a href="http://wowgilden.net/forum-topic_1011.html" target="_blank">offiziellen Newsmeldung</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/wow-dkp-basissystem-integriert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel: Formatierungen für CSV Export</title>
		<link>http://andreas.droesch.de/2009/10/excel-formatierungen-fur-csv-export/</link>
		<comments>http://andreas.droesch.de/2009/10/excel-formatierungen-fur-csv-export/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 22:38:09 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Beispiel]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Formatierung]]></category>
		<category><![CDATA[Makro]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=516</guid>
		<description><![CDATA[Diesmal geht es um ein kleines Excel Makro. Gefragt war nach einer Möglichkeit um grundlegende Schriftformatierungen wie Fett- und Kursivschrift, sowie unterstrichenen Text bei einem Export ins CSV Format zu übernehmen. Die Funktion geht alle Zellen der ersten Tabelle durch und schließt formatierten Text in folgenden Zeichen ein:

*Fettschrift*
/Kursiv/
_Unterstrichen_


Dadurch bleibt die Formatierung auch bei der späteren [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Diesmal geht es um ein kleines Excel Makro. Gefragt war nach einer Möglichkeit um grundlegende Schriftformatierungen wie Fett- und Kursivschrift, sowie unterstrichenen Text bei einem Export ins <a href="http://de.wikipedia.org/wiki/CSV_%28Dateiformat%29" target="_blank">CSV Format</a> zu übernehmen. Die Funktion geht alle Zellen der ersten Tabelle durch und schließt formatierten Text in folgenden Zeichen ein:</p>
<ul style="margin-bottom:20px">
<li>*<strong>Fettschrift</strong>*</li>
<li>/<em>Kursiv</em>/</li>
<li>_<span style="text-decoration: underline;">Unterstrichen</span>_</li>
</ul>
<p><span id="more-516"></span></p>
<p style="text-align: justify;">Dadurch bleibt die Formatierung auch bei der späteren Verarbeitung der CSV Daten erhalten.</p>
<div class="wpsp_code_div"><code>Sub Excel2CSV()<br />
<br />
&nbsp;&nbsp;' Eine Zelle<br />
&nbsp;&nbsp;Dim myCell As Range<br />
<br />
&nbsp;&nbsp;' Tempor&auml;rer Zelleninhalt<br />
&nbsp;&nbsp;Dim tmpText As String<br />
<br />
&nbsp;&nbsp;' Zellenl&auml;nge und Schleifenvariable<br />
&nbsp;&nbsp;Dim cellLen As Integer<br />
&nbsp;&nbsp;Dim i As Integer<br />
<br />
&nbsp;&nbsp;' Formatierungen ge&ouml;ffnet<br />
&nbsp;&nbsp;Dim openBold As Boolean<br />
&nbsp;&nbsp;Dim openItalic As Boolean<br />
&nbsp;&nbsp;Dim openUnderlined As Boolean<br />
<br />
&nbsp;&nbsp;' Formatierungen des aktuellen Zeichens<br />
&nbsp;&nbsp;Dim isBold As Boolean<br />
&nbsp;&nbsp;Dim isItalic As Boolean<br />
&nbsp;&nbsp;Dim isUnderlined As Boolean<br />
<br />
&nbsp;&nbsp;' Die erste Tabelle<br />
&nbsp;&nbsp;Set myTable = Sheets(1).UsedRange<br />
<br />
&nbsp;&nbsp;' Alle Zellen in der Tabelle durchlaufen<br />
&nbsp;&nbsp;For Each myCell In myTable<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;openBold = False<br />
&nbsp;&nbsp;&nbsp;&nbsp;openItalic = False<br />
&nbsp;&nbsp;&nbsp;&nbsp;openUnderlined = False<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;tmpText = &quot;&quot;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;cellLen = myCell.Characters.Count<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;' Pr&uuml;fen ob in der Zelle etwas steht<br />
&nbsp;&nbsp;&nbsp;&nbsp;If cellLen &gt; 0 Then<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Alle Zeichen durchlaufen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i = 1 To cellLen<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Fettschrift ermitteln<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isBold = myCell.Characters(i, 1).Font.Bold<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Kursiv ermitteln<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isItalic = myCell.Characters(i, 1).Font.Italic<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Unterstrichen ermitteln<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If myCell.Characters(i, 1).Font.Underline = xlUnderlineStyleNone Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isUnderlined = False<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isUnderlined = True<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Zeichenformatierung mit aktueller vergleichen und entsprechende<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Formatzeichen einf&uuml;gen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Not openBold = isBold Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpText = tmpText + &quot;*&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openBold = isBold<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Not openItalic = isItalic Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpText = tmpText + &quot;/&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openItalic = isItalic<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Not openUnderlined = isUnderlined Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpText = tmpText + &quot;_&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openUnderlined = isUnderlined<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Zeichen &uuml;bertragen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpText = tmpText + myCell.Characters(i, 1).Text<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next i<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Offene Formatierungen am Ende schlie&szlig;en<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If openBold Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpText = tmpText + &quot;*&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If openItalic Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpText = tmpText + &quot;_&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If openUnderlined Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpText = tmpText + &quot;_&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' Neuen Zelleninhalt &uuml;bertragen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myCell = tmpText<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;Next myCell<br />
<br />
End Sub</code></div>
<p style="text-align: justify;">Dies ist mehr oder weniger mein erstes Excel Makro und ich bin kein VB Experte, daher kann es gut sein, dass Optimierungen möglich sind <img src='http://andreas.droesch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/excel-formatierungen-fur-csv-export/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Monatskalender (per Table)</title>
		<link>http://andreas.droesch.de/2009/10/php-monatskalender-per-table/</link>
		<comments>http://andreas.droesch.de/2009/10/php-monatskalender-per-table/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 17:56:47 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Beispiel]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Datum]]></category>
		<category><![CDATA[Kalender]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=505</guid>
		<description><![CDATA[In diesem kleinen Beispiel geht es um die Ausgabe aller Tage eines Monats als Kalenderansicht in einer Tabelle. Die spätere Ausgabe würde wie folgt aussehen:



Der Funktion kann optional ein bestimmter Monat mit Jahresangabe als Parameter übergeben werden, sonst wird der aktuelle Monat dargestellt:

&#60;?php//&#160;Kalender&#160;eines&#160;Monats&#160;erzeugen&#160;(per&#160;Table)function&#160;show_calendar($month&#160;=&#160;0,&#160;$year&#160;=&#160;0)&#160;{&#160;&#160;//&#160;Timestamp&#160;für&#160;den&#160;gewählten&#160;Monat&#160;erzeugen,&#160;falls&#160;kein&#160;Datum&#160;angegeben&#160;wurde,&#160;&#160;//&#160;dann&#160;das&#160;aktuelle&#160;nehmen.&#160;&#160;$month_timestamp&#160;=&#160;($month&#160;==&#160;0&#160;?&#160;time()&#160;:&#160;mktime(12,&#160;0,&#160;0,&#160;$month,&#160;1,&#160;$year));&#160;&#160;//&#160;Kopf&#160;der&#160;Tabelle&#160;&#160;$output&#160;=&#160;'&#60;table&#160;style="text-align:center"&#62;'&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.&#160;'&#60;tr&#160;style="font-weight:bold"&#62;'&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.&#160;'&#60;td&#62;Mo&#60;/td&#62;&#60;td&#62;Di&#60;/td&#62;&#60;td&#62;Mi&#60;/td&#62;&#60;td&#62;Do&#60;/td&#62;&#60;td&#62;Fr&#60;/td&#62;'&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.&#160;'&#60;td&#62;Sa&#60;/td&#62;&#60;td&#62;So&#60;/td&#62;'&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.&#160;'&#60;/tr&#62;'&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.&#160;'&#60;tr&#62;';&#160;&#160;//&#160;Ersten&#160;Wochentag&#160;des&#160;Monats&#160;ermitteln&#160;und&#160;bis&#160;dahin&#160;Leerzellen&#160;hinzufügen&#160;&#160;$first_day&#160;=&#160;date('w',&#160;$month_timestamp);&#160;&#160;$fill_count&#160;=&#160;($first_day&#160;==&#160;0&#160;?&#160;6&#160;:&#160;$first_day&#160;-&#160;1);&#160;&#160;$output&#160;.=&#160;str_repeat('&#60;td&#62;&#38;nbsp;&#60;/td&#62;',&#160;$fill_count);&#160;&#160;//&#160;Monatstage&#160;auflisten&#160;&#160;$day_count&#160;=&#160;date('t',&#160;$month_timestamp);&#160;&#160;for&#160;($i&#160;=&#160;1;&#160;$i&#160;&#60;=&#160;$day_count;&#160;$i++)&#160;{&#160;&#160;&#160;&#160;//&#160;Tageszelle&#160;einfügen&#160;&#160;&#160;&#160;$output&#160;.=&#160;'&#60;td&#62;'&#160;.&#160;$i&#160;.&#160;'&#60;/td&#62;';&#160;&#160;&#160;&#160;//&#160;Neue&#160;Zeile&#160;nach&#160;7&#160;Spalten&#160;&#160;&#160;&#160;if&#160;(++$fill_count&#160;%&#160;7&#160;==&#160;0)&#160;{&#160;&#160;&#160;&#160;&#160;&#160;$output&#160;.=&#160;'&#60;/tr&#62;&#60;tr&#62;';&#160;&#160;&#160;&#160;}&#160;&#160;}&#160;&#160;//&#160;Letzte&#160;Reihe&#160;mit&#160;Leerzellen&#160;auffüllen&#160;&#160;while&#160;($fill_count++&#160;%&#160;7&#160;!=&#160;0)&#160;{&#160;&#160;&#160;&#160;$output&#160;.=&#160;'&#60;td&#62;&#38;nbsp;&#60;/td&#62;';&#160;&#160;}&#160;&#160;//&#160;Tabelle&#160;schließen&#160;&#160;$output&#160;.=&#160;'&#60;/tr&#62;'&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.&#160;'&#60;/table&#62;';&#160;&#160;//&#160;Kalender&#160;zurückgeben&#160;&#160;return&#160;$output;}?&#62;


Aufgerufen werden kann die Funktion wie folgt:

&#60;?php//&#160;Beispielaufruf&#160;1:&#160;Aktueller&#160;Monatecho&#160;show_calendar();//&#160;Beispielaufruf&#160;2:&#160;Vorgegebener&#160;Monatecho&#160;show_calendar(1,&#160;2009)?&#62;


]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In diesem kleinen Beispiel geht es um die Ausgabe aller Tage eines Monats als Kalenderansicht in einer Tabelle. Die spätere Ausgabe würde wie folgt aussehen:</p>
<p style="text-align:center"><img style="margin:10px 0" title="Monatskalender" src="http://andreas.droesch.de/files/codesnippets/php_monatskalender/calendar_table.gif" alt="Monatskalender" width="153" height="131" /></p>
<p><span id="more-505"></span></p>
<p style="text-align: justify;">
Der Funktion kann optional ein bestimmter Monat mit Jahresangabe als Parameter übergeben werden, sonst wird der aktuelle Monat dargestellt:</p>
<div class="wpsp_code_div"><code><span style="color: #000000">
<span style="color: #007700">&lt;?</span><span style="color: #0000BB">php<br /><br /></span><span style="color: #FF9900">//&nbsp;Kalender&nbsp;eines&nbsp;Monats&nbsp;erzeugen&nbsp;(per&nbsp;Table)<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">show_calendar</span><span style="color: #007700">(</span><span style="color: #0000BB">$month&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$year&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Timestamp&nbsp;für&nbsp;den&nbsp;gewählten&nbsp;Monat&nbsp;erzeugen,&nbsp;falls&nbsp;kein&nbsp;Datum&nbsp;angegeben&nbsp;wurde,<br />&nbsp;&nbsp;//&nbsp;dann&nbsp;das&nbsp;aktuelle&nbsp;nehmen.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$month_timestamp&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">$month&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #0000BB">time</span><span style="color: #007700">()&nbsp;:&nbsp;</span><span style="color: #0000BB">mktime</span><span style="color: #007700">(</span><span style="color: #0000BB">12</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$month</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$year</span><span style="color: #007700">));<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Kopf&nbsp;der&nbsp;Tabelle<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$output&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'&lt;table&nbsp;style="text-align:center"&gt;'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;tr&nbsp;style="font-weight:bold"&gt;'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;td&gt;Mo&lt;/td&gt;&lt;td&gt;Di&lt;/td&gt;&lt;td&gt;Mi&lt;/td&gt;&lt;td&gt;Do&lt;/td&gt;&lt;td&gt;Fr&lt;/td&gt;'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;td&gt;Sa&lt;/td&gt;&lt;td&gt;So&lt;/td&gt;'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;/tr&gt;'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;tr&gt;'</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Ersten&nbsp;Wochentag&nbsp;des&nbsp;Monats&nbsp;ermitteln&nbsp;und&nbsp;bis&nbsp;dahin&nbsp;Leerzellen&nbsp;hinzufügen<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$first_day&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">date</span><span style="color: #007700">(</span><span style="color: #DD0000">'w'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$month_timestamp</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$fill_count&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">$first_day&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #007700">?&nbsp;</span><span style="color: #0000BB">6&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">$first_day&nbsp;</span><span style="color: #007700">-&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$output&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #0000BB">str_repeat</span><span style="color: #007700">(</span><span style="color: #DD0000">'&lt;td&gt;&amp;nbsp;&lt;/td&gt;'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$fill_count</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Monatstage&nbsp;auflisten<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$day_count&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">date</span><span style="color: #007700">(</span><span style="color: #DD0000">'t'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$month_timestamp</span><span style="color: #007700">);<br />&nbsp;&nbsp;for&nbsp;(</span><span style="color: #0000BB">$i&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">$i&nbsp;</span><span style="color: #007700">&lt;=&nbsp;</span><span style="color: #0000BB">$day_count</span><span style="color: #007700">;&nbsp;</span><span style="color: #0000BB">$i</span><span style="color: #007700">++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Tageszelle&nbsp;einfügen<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$output&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'&lt;td&gt;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$i&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;/td&gt;'</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Neue&nbsp;Zeile&nbsp;nach&nbsp;7&nbsp;Spalten<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(++</span><span style="color: #0000BB">$fill_count&nbsp;</span><span style="color: #007700">%&nbsp;</span><span style="color: #0000BB">7&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$output&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'&lt;/tr&gt;&lt;tr&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Letzte&nbsp;Reihe&nbsp;mit&nbsp;Leerzellen&nbsp;auffüllen<br />&nbsp;&nbsp;</span><span style="color: #007700">while&nbsp;(</span><span style="color: #0000BB">$fill_count</span><span style="color: #007700">++&nbsp;%&nbsp;</span><span style="color: #0000BB">7&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$output&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'&lt;td&gt;&amp;nbsp;&lt;/td&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Tabelle&nbsp;schließen<br />&nbsp;&nbsp;</span><span style="color: #0000BB">$output&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'&lt;/tr&gt;'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #DD0000">'&lt;/table&gt;'</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;</span><span style="color: #FF9900">//&nbsp;Kalender&nbsp;zurückgeben<br />&nbsp;&nbsp;</span><span style="color: #007700">return&nbsp;</span><span style="color: #0000BB">$output</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
<p style="text-align: justify;">Aufgerufen werden kann die Funktion wie folgt:</p>
<div class="wpsp_code_div"><code><span style="color: #000000">
<span style="color: #007700">&lt;?</span><span style="color: #0000BB">php<br /><br /></span><span style="color: #FF9900">//&nbsp;Beispielaufruf&nbsp;1:&nbsp;Aktueller&nbsp;Monat<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">show_calendar</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF9900">//&nbsp;Beispielaufruf&nbsp;2:&nbsp;Vorgegebener&nbsp;Monat<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">show_calendar</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">2009</span><span style="color: #007700">)<br /><br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/php-monatskalender-per-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WoWG: CSS Caching optimiert</title>
		<link>http://andreas.droesch.de/2009/10/wow-css-caching-optimiert/</link>
		<comments>http://andreas.droesch.de/2009/10/wow-css-caching-optimiert/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 18:58:21 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Projekt-News]]></category>
		<category><![CDATA[WoWGilden]]></category>
		<category><![CDATA[Anzeigefehler]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://andreas.droesch.de/?p=501</guid>
		<description><![CDATA[Bei den letzten Updates kam es oft vor, dass auch Änderungen an den CSS Dateien (welche für die optische Formatierung verantwortlich sind) durchgeführt wurden. Diese werden vom Browser jedoch nicht bei jedem Seitenaufruf neu geladen, sondern in dessen Cache zwischengespeichert. Im Grunde eine gute Sache, jedoch braucht der Browser meist mehr als einen Refresh, bis [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Bei den letzten Updates kam es oft vor, dass auch Änderungen an den CSS Dateien (welche für die optische Formatierung verantwortlich sind) durchgeführt wurden. Diese werden vom Browser jedoch nicht bei jedem Seitenaufruf neu geladen, sondern in dessen Cache zwischengespeichert. Im Grunde eine gute Sache, jedoch braucht der Browser meist mehr als einen Refresh, bis er von der Änderung an der CSS Datei etwas mitbekommt und so kann es passieren, dass nach einem Update der Seite noch die alte CSS Datei aus dem Cache angezeigt wird, wodurch es zu Anzeigefehlern kommen kann.</p>
<p><span id="more-501"></span></p>
<p style="text-align: justify;">Ich habe die einzelnen CSS Dateien nun mit fortlaufenden Versionsnummern versehen, welche beim Aufruf mit übergeben werden. Nach einer Änderung wird einfach die Versionsnummer erhöht und der Browser läd direkt die neue Datei, da es für ihn eine andere zu sein scheint.</p>
<p style="text-align: justify;">Zur technischen Umsetzung, die Versionsnummer wird beim Aufruf der CSS Datei einfach als Parameter mit übergeben (hier im Beispiel ist es die Nr 3):</p>
<div class="wpsp_code_div"><code><span style="color:#000">&lt;<span style="color:#00F;font-weight:bold">link</span> <span style="font-weight:bold">rel=</span><span style="color:#00F">&quot;stylesheet&quot;</span> <span style="font-weight:bold">href=</span><span style="color:#00F">&quot;main.css?3&quot;</span> <span style="font-weight:bold">type=</span><span style="color:#00F">&quot;text/css&quot;</span> <span style="font-weight:bold">/</span>&gt;</span></code></div>
]]></content:encoded>
			<wfw:commentRss>http://andreas.droesch.de/2009/10/wow-css-caching-optimiert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

