<?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>Webworking &#187; PHP</title>
	<atom:link href="http://www.guido-muehlwitz.de/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.guido-muehlwitz.de</link>
	<description>Webworking / Web-Entwicklung - Wordpress / Drupal</description>
	<lastBuildDate>Tue, 07 Sep 2010 08:40:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Tutorial Regular Expressions: Wiederholungen</title>
		<link>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tutorial-regular-expressions-wiederholungen</link>
		<comments>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 08:31:51 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Regular Expressions]]></category>
		<category><![CDATA[Reguläre Ausdrücke]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=1705</guid>
		<description><![CDATA[In den bisherigen Teilen des Tutorials haben wir Elemente immer so gesucht, das sie an einer bestimmten Stelle vorkommen mussten. Dies ist eher seltener der Fall, denn in der Regel ist es eher so, dass wir nach einer unbestimmten Anzahl von Zahlen oder Buchstaben suchen. Oder das wir nach einem Konstrukt suchen der mit etwas [...]]]></description>
			<content:encoded><![CDATA[<p>In den <a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/">bisherigen Teilen</a> des Tutorials haben wir Elemente immer so gesucht, das sie an einer bestimmten Stelle vorkommen <em>mussten</em>. Dies ist eher seltener der Fall, denn in der Regel ist es eher so, dass wir nach einer unbestimmten Anzahl von Zahlen oder Buchstaben suchen. Oder das wir nach einem Konstrukt suchen der mit etwas bestimmten anfängt, mit etwas bestimmten aufhört, und dazwischen eine beliebige Anzahl von Zeichen stehen (so zum Beispiel ein Tag in einer HTML-Seite).</p>
<p>Entsprechend benötigen wir die sogenannten Metacharacters der Regular Expressions, die uns erlauben, Wiederholungen durchzuführen. Die wohl bekanntesten Metacharacter sind das Fragezeichen <strong>?</strong> und der Asteriks <strong>*</strong>. Das Fragezeichen bedeutet, dass das <em>davorstehende</em> Zeichen im Suchausdruck keinmal oder einmal vorkommen darf! Eine Suche nach <em>Hoh?l</em> findet zum Beispiel die Wörter <em>Hohl</em>, aber auch <em>Hol</em>.</p>
<p>Der Asterisk bedeutet, dass das <em>davorstehende</em> Zeichen keinmal oder beliebig oft vorkommen darf! Es entspricht im Großen und Ganzen den Wildcards, die man aus der Kommandozeile von Betriebssystemen her kennt. Eine Suche nach <em>Wald*</em> findet zum Beispiel <em>Wald</em>, aber auch <em>Waldschrat</em>.</p>
<p>Im Gegensatz dazu muss beim Metacharacter Plus <strong>+</strong> das davorstehende Zeichen mindestens einmal vorkommen. Es darf aber auch beliebig oft wiederholt werden. Eine Suche nach [A-C]+ würde zum Beispiel das Wort <em>Bier</em> finden, aber nicht das <em>Zebra</em>. Grund ist, dass das Z natürlich nicht in der Aufzählung [A-C] enthalten ist.</p>
<p>Wenn ein Zeichen mehr als einmal vorkommen muss, kann man geschweifte Klammern <strong>{n}</strong> verwenden. Wobei das davorstehende Zeichen <em>exakt</em> n-Mal wiederholt werden muss. Eine Suche nach <strong>[0-9]{4}</strong> findet zum Beispiel alle 4-stelligen Zahlen. Möchte man nach einer bestimmten Anzahl von Zeichen suchen, kann man die geschweiften Klammern auch abwandeln: <strong>{n,m}</strong> findet von dem davorstehenden Zeichen mindestens <em>n</em>, aber maximal <em>m</em> Stellen. Eine Suche nach [0-9]{3,4} findet demnach alle 3- oder 4-stelligen Zahlen.</p>
<p>Kommen wir zurück zu unserem Suchstring:</p>
<p><strong>Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0)</strong></p>
<p>Suche nach: <strong>W*in</strong><strong><br />
</strong>Findet <strong>Win</strong>dows und <strong>Win</strong>64</p>
<p>Suche nach: <strong>[xX][0-9]{2}</strong><br />
Findet <strong>x64</strong></p>
<p>Suche nach: <strong>[0-9]+\.[0-9]+</strong><br />
Findet 4.0, 8.0, 6.0, 4.0, 2.0 …</p>
<p>Im nächsten Teil des Tutorials lernen wir das Gruppieren von Suchergebnissen.</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Wiederholungen&amp;notes=In%20den%20bisherigen%20Teilen%20des%20Tutorials%20haben%20wir%20Elemente%20immer%20so%20gesucht%2C%20das%20sie%20an%20einer%20bestimmten%20Stelle%20vorkommen%20mussten.%20Dies%20ist%20eher%20seltener%20der%20Fall%2C%20denn%20in%20der%20Regel%20ist%20es%20eher%20so%2C%20dass%20wir%20nach%20einer%20unbestimmten%20Anzahl%20von%20Zahlen%20od" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Wiederholungen&amp;bodytext=In%20den%20bisherigen%20Teilen%20des%20Tutorials%20haben%20wir%20Elemente%20immer%20so%20gesucht%2C%20das%20sie%20an%20einer%20bestimmten%20Stelle%20vorkommen%20mussten.%20Dies%20ist%20eher%20seltener%20der%20Fall%2C%20denn%20in%20der%20Regel%20ist%20es%20eher%20so%2C%20dass%20wir%20nach%20einer%20unbestimmten%20Anzahl%20von%20Zahlen%20od" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Wiederholungen&amp;annotation=In%20den%20bisherigen%20Teilen%20des%20Tutorials%20haben%20wir%20Elemente%20immer%20so%20gesucht%2C%20das%20sie%20an%20einer%20bestimmten%20Stelle%20vorkommen%20mussten.%20Dies%20ist%20eher%20seltener%20der%20Fall%2C%20denn%20in%20der%20Regel%20ist%20es%20eher%20so%2C%20dass%20wir%20nach%20einer%20unbestimmten%20Anzahl%20von%20Zahlen%20od" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F&amp;bm_description=Tutorial%20Regular%20Expressions%3A%20Wiederholungen&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F&amp;t=Tutorial%20Regular%20Expressions%3A%20Wiederholungen" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Tutorial%20Regular%20Expressions%3A%20Wiederholungen%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-wiederholungen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Wiederholungen" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/" title="Tutorial Regular Expressions: Wiederholungen" rev="flattr;uid:16555;language:de_DE;category:text;tags:Regular Expressions,Reguläre Ausdrücke,Tutorial;button:compact;">In den bisherigen Teilen des Tutorials haben wir Elemente immer so gesucht, das sie an einer bestimmten Stelle vorkommen mussten. Dies ist eher seltener der Fall, denn in der Regel ist es eher so, dass wir nach einer unbestimmten Anzahl von Zahlen oder Buchstaben suchen. Oder das wir nach einem Konstrukt suchen der mit etwas bestimmten anfängt, mit etwas bestimmten aufhört, und dazwischen eine beliebige Anzahl von Zeichen stehen (so zum Beispiel ein Tag in einer HTML-Seite).

Entsprechend benötigen wir die sogenannten Metacharacters der Regular Expressions, die uns erlauben, Wiederholungen durchzuführen. Die wohl bekanntesten Metacharacter sind das Fragezeichen ? und der Asteriks *. Das Fragezeichen bedeutet, dass das davorstehende Zeichen im Suchausdruck keinmal oder einmal vorkommen darf! Eine Suche nach Hoh?l findet zum Beispiel die Wörter Hohl, aber auch Hol.

Der Asterisk bedeutet, dass das davorstehende Zeichen keinmal oder beliebig oft vorkommen darf! Es entspricht im Großen und Ganzen den Wi</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/" rel="bookmark" title="2. August 2010">Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-nach-zeichen-suchen/" rel="bookmark" title="29. Juli 2010">Tutorial Regular Expressions: Nach Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/" rel="bookmark" title="4. August 2010">Tutorial Regular Expressions: Die Position einer Zeichenkette</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/" rel="bookmark" title="21. Juli 2010">Tutorial Regular Expressions – eine Einführung</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/" rel="bookmark" title="21. Oktober 2009">Tutorial OpenGeoDB – Die Installation der Datenbank</a></li>
</ul><!-- Similar Posts took 8.042 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/#comments">Ein Kommentar</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/regular-expressions/" rel="tag">Regular Expressions</a>, <a href="http://www.guido-muehlwitz.de/tag/regulaere-ausdruecke/" rel="tag">Reguläre Ausdrücke</a>, <a href="http://www.guido-muehlwitz.de/tag/tutorial/" rel="tag">Tutorial</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial Regular Expressions: Die Position einer Zeichenkette</title>
		<link>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tutorial-regular-expressions-die-position-einer-zeichenkette</link>
		<comments>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 08:59:41 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[Regular Expressions]]></category>
		<category><![CDATA[Reguläre Ausdrücke]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=1689</guid>
		<description><![CDATA[Wie man einfache Zeichenketten sucht, ist jetzt klar, zumeist ist es jedoch so das diese an festen Positionen innerhalb des Suchstrings stehen müssen (eine E-Mail-Adresse endet zum Beispiel  immer mit der Toplevel-Domain). In Regular Expressions gibt es hierfür die sogenannten Anker, die definieren, wo in einem Text das Suchmuster stehen sollte. Lustigerweise gehört zu diesen [...]]]></description>
			<content:encoded><![CDATA[<p>Wie man <a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/">einfache Zeichenketten sucht</a>, ist jetzt klar, zumeist ist es jedoch so das diese an festen Positionen innerhalb des Suchstrings stehen müssen (eine E-Mail-Adresse endet zum Beispiel  immer mit der Toplevel-Domain). In Regular Expressions gibt es hierfür die sogenannten Anker, die definieren, wo in einem Text das Suchmuster stehen sollte.</p>
<p>Lustigerweise gehört zu diesen Ankern auch der <strong>Punkt</strong>, der im eigentlichen Sinne keine Positionsangabe ist, sondern ein Synonym für „<em>irgendein Zeichen</em>“.  Da der Punkt nun Teil einer Regular Expressions sein kann, stellt sich natürlich die Frage, wie man jetzt wohl nach einem Punkt sucht. Hierfür muss man diesen mittels des Backslashs „Escapen“, wie man es zum Beispiel von MySQL her gewohnt ist. Demnach sucht ein <strong>.</strong> nach „<em>irgendeinem Zeichen</em>“ und ein <strong>\.</strong> nach einem Punkt.</p>
<p>Lustigerweise ist das Circumflex <strong>^</strong>, das wir im Prinzip schon als <em>Not</em> für Bereiche kennengelernt haben, auch ein Anker. Ist also von seiner Funktion her doppelt belegt und erfüllt somit verschiedene Aufgaben. Als Anker bedeutet das Circumflex „<em>Suchwort muss starten mit</em>“. Entsprechend bedeutet das Dollar-Zeichen <strong>$</strong> „<em>Suchwort muss enden mit</em>“.</p>
<p>Schwer vorzustellen, also nehmen wir uns wieder unseren Beispielstring:</p>
<p><strong>Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0)</strong></p>
<p>Suche nach:<strong> </strong><strong>[0-9]\.[0-9]\)$<br />
</strong>Findet das Tablet PC<strong>2.0)</strong> – <em>runde Klammern sind auch Befehle in Regex und müssen ebenfalls escaped werden (später dazu mehr).</em></p>
<p><strong>Suche nach: </strong><strong>^Win</strong><strong><br />
</strong>Liefert kein Ergebnis, da der zu durchsuchende Text mit Mozilla beginnt, entsprechend:</p>
<p>Suche nach: <strong>^Moz<br />
</strong>Liefert als Ergebnis <strong>Moz</strong>illa</p>
<p>Such nach: <strong>.in<br />
</strong>Findet <strong>Win</strong>dows und  <strong>Win</strong>64</p>
<p>Im <a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/">nächsten Teil des Tutorials</a> beschäftigen wir uns mit <em>Wiederholungen</em> und <em>beliebigen Zeichen</em>.</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Die%20Position%20einer%20Zeichenkette&amp;notes=Wie%20man%20einfache%20Zeichenketten%20sucht%2C%20ist%20jetzt%20klar%2C%20zumeist%20ist%20es%20jedoch%20so%20das%20diese%20an%20festen%20Positionen%20innerhalb%20des%20Suchstrings%20stehen%20m%C3%BCssen%20%28eine%20E-Mail-Adresse%20endet%20zum%20Beispiel%20%C2%A0immer%20mit%20der%20Toplevel-Domain%29.%20In%20Regular%20Expressions%20gi" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Die%20Position%20einer%20Zeichenkette&amp;bodytext=Wie%20man%20einfache%20Zeichenketten%20sucht%2C%20ist%20jetzt%20klar%2C%20zumeist%20ist%20es%20jedoch%20so%20das%20diese%20an%20festen%20Positionen%20innerhalb%20des%20Suchstrings%20stehen%20m%C3%BCssen%20%28eine%20E-Mail-Adresse%20endet%20zum%20Beispiel%20%C2%A0immer%20mit%20der%20Toplevel-Domain%29.%20In%20Regular%20Expressions%20gi" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Die%20Position%20einer%20Zeichenkette&amp;annotation=Wie%20man%20einfache%20Zeichenketten%20sucht%2C%20ist%20jetzt%20klar%2C%20zumeist%20ist%20es%20jedoch%20so%20das%20diese%20an%20festen%20Positionen%20innerhalb%20des%20Suchstrings%20stehen%20m%C3%BCssen%20%28eine%20E-Mail-Adresse%20endet%20zum%20Beispiel%20%C2%A0immer%20mit%20der%20Toplevel-Domain%29.%20In%20Regular%20Expressions%20gi" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F&amp;bm_description=Tutorial%20Regular%20Expressions%3A%20Die%20Position%20einer%20Zeichenkette&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F&amp;t=Tutorial%20Regular%20Expressions%3A%20Die%20Position%20einer%20Zeichenkette" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Tutorial%20Regular%20Expressions%3A%20Die%20Position%20einer%20Zeichenkette%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-die-position-einer-zeichenkette%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Die%20Position%20einer%20Zeichenkette" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/" title="Tutorial Regular Expressions: Die Position einer Zeichenkette" rev="flattr;uid:16555;language:de_DE;category:text;tags:regex,Regular Expressions,Reguläre Ausdrücke,Tutorial;button:compact;">Wie man einfache Zeichenketten sucht, ist jetzt klar, zumeist ist es jedoch so das diese an festen Positionen innerhalb des Suchstrings stehen müssen (eine E-Mail-Adresse endet zum Beispiel  immer mit der Toplevel-Domain). In Regular Expressions gibt es hierfür die sogenannten Anker, die definieren, wo in einem Text das Suchmuster stehen sollte.

Lustigerweise gehört zu diesen Ankern auch der Punkt, der im eigentlichen Sinne keine Positionsangabe ist, sondern ein Synonym für „irgendein Zeichen“.  Da der Punkt nun Teil einer Regular Expressions sein kann, stellt sich natürlich die Frage, wie man jetzt wohl nach einem Punkt sucht. Hierfür muss man diesen mittels des Backslashs „Escapen“, wie man es zum Beispiel von MySQL her gewohnt ist. Demnach sucht ein . nach „irgendeinem Zeichen“ und ein \. nach einem Punkt.

Lustigerweise ist das Circumflex ^, das wir im Prinzip schon als Not für Bereiche kennengelernt haben, auch ein Anker. Ist also von seiner Funktion her doppelt belegt und erfü</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-nach-zeichen-suchen/" rel="bookmark" title="29. Juli 2010">Tutorial Regular Expressions: Nach Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/" rel="bookmark" title="2. August 2010">Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/" rel="bookmark" title="11. August 2010">Tutorial Regular Expressions: Wiederholungen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/" rel="bookmark" title="21. Oktober 2009">Tutorial OpenGeoDB – Die Installation der Datenbank</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/" rel="bookmark" title="21. Juli 2010">Tutorial Regular Expressions – eine Einführung</a></li>
</ul><!-- Similar Posts took 8.306 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/#comments">Bisher kein Kommentar - Schreibe den Ersten!</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/regex/" rel="tag">regex</a>, <a href="http://www.guido-muehlwitz.de/tag/regular-expressions/" rel="tag">Regular Expressions</a>, <a href="http://www.guido-muehlwitz.de/tag/regulaere-ausdruecke/" rel="tag">Reguläre Ausdrücke</a>, <a href="http://www.guido-muehlwitz.de/tag/tutorial/" rel="tag">Tutorial</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen</title>
		<link>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen</link>
		<comments>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 08:50:12 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[Regular Expressions]]></category>
		<category><![CDATA[Reguläre Ausdrücke]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=1675</guid>
		<description><![CDATA[Wir können jetzt mittels Regular Expressions nach Zeichen in einer Zeichenkette suchen, das macht aber aus Geschwindigkeitsgründen in der Regel keinen Sinn. Und irgendwie entspricht es auch nicht dem Konzept von Regular Expressions, da ich ja eigentlich ein Textmuster erkennen möchte. In der Regel weiß ich zum Beispiel, in welchem Format eine E-Mail-Adresse aufgebaut ist, [...]]]></description>
			<content:encoded><![CDATA[<p>Wir können jetzt mittels Regular Expressions <a href="../../../../../2010/07/tutorial-regular-expressions-nach-zeichen-suchen/">nach Zeichen in einer Zeichenkette suchen</a>, das macht aber aus Geschwindigkeitsgründen in der Regel keinen Sinn. Und irgendwie entspricht es auch nicht dem Konzept von Regular Expressions, da ich ja eigentlich ein Textmuster erkennen möchte. In der Regel weiß ich zum Beispiel, in welchem Format eine E-Mail-Adresse aufgebaut ist, aber nicht welche sie enthält.</p>
<p>Aus diesem Grund kann man in den Regular Expressions nicht nur nach einem bestimmten Zeichen suchen, sondern auch nach Zeichen innerhalb einer bestimmten Bandbreite: so zum Beispiel „irgendeine Zahl“ oder auch „irgendein Buchstabe“. Innerhalb von Regular Expressions definiert man diese Suchen mit der eckigen Klammer <strong>[]</strong>.</p>
<p>Die eckige Klammer ohne Zusätze definiert dabei <em>genau ein Zeichen</em>. Gibt man zum Beispiel ein <strong>[12]</strong> an darf im zu durchsuchenden Text an dieser Stelle eine 1 <em>ODER</em> eine 2 stehen. Vermutet man an der betreffenden Stelle „irgendeine Zahl“, dann wäre eine passende Angabe: <strong>[0123456789]</strong>. Da man zumindest beim ABC nicht alle 26 Buchstaben tippen möchte vereinfachen uns die Regular Expressions die Eingabe von Bereichen: <strong>[0123456789]</strong> kann auch als <strong>[0-9]</strong> angegeben werden.</p>
<p>Dies ist auch wichtig, da Regular Expressions Case Sensitive sind, ein <em>A</em> ist also etwas anderes als ein <em>a</em> – aus diesem Grund kann ich innerhalb der eckigen Klammern gleich mehrere Bereiche definieren. Ein <strong>[A-Z]</strong> würde nur Großbuchstaben finden, ein <strong>[a-zA-Z]</strong> hingegen alle Buchstaben. Da ich allerdings manchmal auch nach „<em>allem außer</em>“ Suchen möchte, kann die Angabe in den eckigen Klammern mittels eines <em>Circumflex</em>(<strong>^</strong>) auch negiert werden.</p>
<p>Eine Suche nach <strong>[^0-9]</strong> liefert zum Beispiel alles außer die Zahlen 0-9. Kommen wir wieder zurück zu unserem Beispiel:</p>
<p><strong>Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0)</strong></p>
<p>Suche nach<strong>: </strong><strong>in[du]<br />
</strong>Findet W<strong>ind</strong>ows, aber nicht Win64</p>
<p>Suche nach: <strong>x[0-9A-Z]<br />
</strong>Findet <strong>x6</strong>4</p>
<p>Suche nach: <strong>[^A-M]in<br />
</strong>Findet <strong>Win</strong>dows und <strong>Win</strong>64</p>
<p>Im <a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/">nächsten Teil des Tutorials</a> wird es darum gehen zu definieren, an welcher Position innerhalb des zu durchsuchenden Strings man die einzelnen Zeichen erwartet.</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Nach%20einem%20beliebigen%20Zeichen%20suchen&amp;notes=Wir%20k%C3%B6nnen%20jetzt%20mittels%20Regular%20Expressions%20nach%20Zeichen%20in%20einer%20Zeichenkette%20suchen%2C%20das%20macht%20aber%20aus%20Geschwindigkeitsgr%C3%BCnden%20in%20der%20Regel%20keinen%20Sinn.%20Und%20irgendwie%20entspricht%20es%20auch%20nicht%20dem%20Konzept%20von%20Regular%20Expressions%2C%20da%20ich%20ja%20eigen" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Nach%20einem%20beliebigen%20Zeichen%20suchen&amp;bodytext=Wir%20k%C3%B6nnen%20jetzt%20mittels%20Regular%20Expressions%20nach%20Zeichen%20in%20einer%20Zeichenkette%20suchen%2C%20das%20macht%20aber%20aus%20Geschwindigkeitsgr%C3%BCnden%20in%20der%20Regel%20keinen%20Sinn.%20Und%20irgendwie%20entspricht%20es%20auch%20nicht%20dem%20Konzept%20von%20Regular%20Expressions%2C%20da%20ich%20ja%20eigen" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Nach%20einem%20beliebigen%20Zeichen%20suchen&amp;annotation=Wir%20k%C3%B6nnen%20jetzt%20mittels%20Regular%20Expressions%20nach%20Zeichen%20in%20einer%20Zeichenkette%20suchen%2C%20das%20macht%20aber%20aus%20Geschwindigkeitsgr%C3%BCnden%20in%20der%20Regel%20keinen%20Sinn.%20Und%20irgendwie%20entspricht%20es%20auch%20nicht%20dem%20Konzept%20von%20Regular%20Expressions%2C%20da%20ich%20ja%20eigen" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F&amp;bm_description=Tutorial%20Regular%20Expressions%3A%20Nach%20einem%20beliebigen%20Zeichen%20suchen&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F&amp;t=Tutorial%20Regular%20Expressions%3A%20Nach%20einem%20beliebigen%20Zeichen%20suchen" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Tutorial%20Regular%20Expressions%3A%20Nach%20einem%20beliebigen%20Zeichen%20suchen%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F08%2Ftutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen%2F&amp;title=Tutorial%20Regular%20Expressions%3A%20Nach%20einem%20beliebigen%20Zeichen%20suchen" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/" title="Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen" rev="flattr;uid:16555;language:de_DE;category:text;tags:regex,Regular Expressions,Reguläre Ausdrücke,Tutorial;button:compact;">Wir können jetzt mittels Regular Expressions nach Zeichen in einer Zeichenkette suchen, das macht aber aus Geschwindigkeitsgründen in der Regel keinen Sinn. Und irgendwie entspricht es auch nicht dem Konzept von Regular Expressions, da ich ja eigentlich ein Textmuster erkennen möchte. In der Regel weiß ich zum Beispiel, in welchem Format eine E-Mail-Adresse aufgebaut ist, aber nicht welche sie enthält.

Aus diesem Grund kann man in den Regular Expressions nicht nur nach einem bestimmten Zeichen suchen, sondern auch nach Zeichen innerhalb einer bestimmten Bandbreite: so zum Beispiel „irgendeine Zahl“ oder auch „irgendein Buchstabe“. Innerhalb von Regular Expressions definiert man diese Suchen mit der eckigen Klammer [].

Die eckige Klammer ohne Zusätze definiert dabei genau ein Zeichen. Gibt man zum Beispiel ein [12] an darf im zu durchsuchenden Text an dieser Stelle eine 1 ODER eine 2 stehen. Vermutet man an der betreffenden Stelle „irgendeine Zahl“, dann wäre eine passende Angabe: [012</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-nach-zeichen-suchen/" rel="bookmark" title="29. Juli 2010">Tutorial Regular Expressions: Nach Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/" rel="bookmark" title="11. August 2010">Tutorial Regular Expressions: Wiederholungen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/" rel="bookmark" title="4. August 2010">Tutorial Regular Expressions: Die Position einer Zeichenkette</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/" rel="bookmark" title="21. Juli 2010">Tutorial Regular Expressions – eine Einführung</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/" rel="bookmark" title="21. Oktober 2009">Tutorial OpenGeoDB – Die Installation der Datenbank</a></li>
</ul><!-- Similar Posts took 8.253 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/#comments">Ein Kommentar</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/regex/" rel="tag">regex</a>, <a href="http://www.guido-muehlwitz.de/tag/regular-expressions/" rel="tag">Regular Expressions</a>, <a href="http://www.guido-muehlwitz.de/tag/regulaere-ausdruecke/" rel="tag">Reguläre Ausdrücke</a>, <a href="http://www.guido-muehlwitz.de/tag/tutorial/" rel="tag">Tutorial</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial Regular Expressions – eine Einführung</title>
		<link>http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tutorial-regular-expressions-eine-einfuehrung</link>
		<comments>http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:41:35 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[Reguläre Ausdrücke]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=1652</guid>
		<description><![CDATA[Es wird mal wieder an der Zeit eine neue Tutorial-Reihe zu starten und was empfiehlt sich da besser als reguläre Ausdrücke (Regular Expressions) &#8211; dem Lieblingsfeind jedes Entwicklers. Ja, sie sind komplex, ja, es hätte einfacher gehen können und nein: Man kommt nicht dran vorbei! ;) Selbst als Nicht-Programmierer gibt es kein Entrinnen vor dem [...]]]></description>
			<content:encoded><![CDATA[<p>Es wird mal wieder an der Zeit eine neue Tutorial-Reihe zu starten und was empfiehlt sich da besser als reguläre Ausdrücke (Regular Expressions) &#8211; dem Lieblingsfeind jedes Entwicklers. Ja, sie sind komplex, ja, es hätte einfacher gehen können und nein: Man kommt nicht dran vorbei! ;)</p>
<p>Selbst als Nicht-Programmierer gibt es kein Entrinnen vor dem Schweizer Messer der Textmustererkennung, dann spätestens wenn man sich in seiner gerade frisch installierten Open Source mit den sogenannten Permalinks herumschlägt stolpert man sehr schnell über mod_rewrite. Und genau dieses mod_rewrite hat zum einen bereits Generationen von Webworkern in den Wahnsinn getrieben, denn es setzt voll auf Regular Expressions.</p>
<p>Aber auch in anderen Bereichen kommt man um Regular Expressions nicht herum: zum Beispiel in Javascript oder auch in PHP. Wenn man es kann, ist es sehr einfach damit Regeln zu schreiben, die selbst komplexeste Texte durchsuchen können. So zum Beispiel könnte ich mir in einem Quelltext einer HTML-Seite alle Links ausgeben lassen. Auch beliebt sind die Ausdrücke bei zum Beispiel der Formular-Validierung, wo ich ziemlich schnell eine E-Mail auf ihre semantische Gültigkeit überprüfen kann.</p>
<p>Abgekürzt werden die kleinen Helferlein zumeist als Regex oder als Regexp – und trotz ihrer weiten Verbreitung haben sie zumeist einen riesigen Nachteil: Sie sind langsam! Deshalb muss deren Einsatz wohl überlegt sein. String-Operationen sind im Programmierumfeld stets die Operationen, die am meisten kosten, und eine Regular Expression macht diesen Umstand nicht gerade besser.</p>
<p>Aber Regular Expressions können noch viel mehr – sie können nicht nur ein Textmuster finden, sie können dieses auch in mehrere Teile zerlegen, die Reihenfolge der Teile ändern oder ganze Bereiche ersetzen. Natürlich ist man nur in einem Bereich, wo die Regular Expression schon mal über die Zeilengrenze hinaus geht, aber prinzipiell funktioniert es. Um wieder auf das Beispiel mod_rewrite zurückzukommen, hier ist zum Beispiel die Zerlegung einer URL gang und gebe. Die URL wird hierbei in der Regel umgeschrieben und zumeist „nur“ aus Parametern entsprechende Verzeichnisse erstellt. Ein Beispiel wäre zum Beispiel:</p>
<p>Von <strong>index.php?id=5</strong> nach <strong>index/id/5</strong></p>
<p>In den nächsten Wochen werde ich immer mal wieder das Theme reguläre Ausdrücke aufgreifen und keine Angst – ich werde weder das Wort formale Sprache nicht in den Mund nehmen ;)</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F&amp;title=Tutorial%20Regular%20Expressions%20%E2%80%93%20eine%20Einf%C3%BChrung&amp;notes=Es%20wird%20mal%20wieder%20an%20der%20Zeit%20eine%20neue%20Tutorial-Reihe%20zu%20starten%20und%20was%20empfiehlt%20sich%20da%20besser%20als%20regul%C3%A4re%20Ausdr%C3%BCcke%20%28Regular%20Expressions%29%20-%20dem%20Lieblingsfeind%20jedes%20Entwicklers.%20Ja%2C%20sie%20sind%20komplex%2C%20ja%2C%20es%20h%C3%A4tte%20einfacher%20gehen%20k%C3%B6nnen%20und" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F&amp;title=Tutorial%20Regular%20Expressions%20%E2%80%93%20eine%20Einf%C3%BChrung&amp;bodytext=Es%20wird%20mal%20wieder%20an%20der%20Zeit%20eine%20neue%20Tutorial-Reihe%20zu%20starten%20und%20was%20empfiehlt%20sich%20da%20besser%20als%20regul%C3%A4re%20Ausdr%C3%BCcke%20%28Regular%20Expressions%29%20-%20dem%20Lieblingsfeind%20jedes%20Entwicklers.%20Ja%2C%20sie%20sind%20komplex%2C%20ja%2C%20es%20h%C3%A4tte%20einfacher%20gehen%20k%C3%B6nnen%20und" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F&amp;title=Tutorial%20Regular%20Expressions%20%E2%80%93%20eine%20Einf%C3%BChrung&amp;annotation=Es%20wird%20mal%20wieder%20an%20der%20Zeit%20eine%20neue%20Tutorial-Reihe%20zu%20starten%20und%20was%20empfiehlt%20sich%20da%20besser%20als%20regul%C3%A4re%20Ausdr%C3%BCcke%20%28Regular%20Expressions%29%20-%20dem%20Lieblingsfeind%20jedes%20Entwicklers.%20Ja%2C%20sie%20sind%20komplex%2C%20ja%2C%20es%20h%C3%A4tte%20einfacher%20gehen%20k%C3%B6nnen%20und" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F&amp;bm_description=Tutorial%20Regular%20Expressions%20%E2%80%93%20eine%20Einf%C3%BChrung&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F&amp;t=Tutorial%20Regular%20Expressions%20%E2%80%93%20eine%20Einf%C3%BChrung" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Tutorial%20Regular%20Expressions%20%E2%80%93%20eine%20Einf%C3%BChrung%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F07%2Ftutorial-regular-expressions-eine-einfuehrung%2F&amp;title=Tutorial%20Regular%20Expressions%20%E2%80%93%20eine%20Einf%C3%BChrung" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/" title="Tutorial Regular Expressions – eine Einführung" rev="flattr;uid:16555;language:de_DE;category:text;tags:regex,Reguläre Ausdrücke,Tutorial;button:compact;">Es wird mal wieder an der Zeit eine neue Tutorial-Reihe zu starten und was empfiehlt sich da besser als reguläre Ausdrücke (Regular Expressions) - dem Lieblingsfeind jedes Entwicklers. Ja, sie sind komplex, ja, es hätte einfacher gehen können und nein: Man kommt nicht dran vorbei! ;)

Selbst als Nicht-Programmierer gibt es kein Entrinnen vor dem Schweizer Messer der Textmustererkennung, dann spätestens wenn man sich in seiner gerade frisch installierten Open Source mit den sogenannten Permalinks herumschlägt stolpert man sehr schnell über mod_rewrite. Und genau dieses mod_rewrite hat zum einen bereits Generationen von Webworkern in den Wahnsinn getrieben, denn es setzt voll auf Regular Expressions.

Aber auch in anderen Bereichen kommt man um Regular Expressions nicht herum: zum Beispiel in Javascript oder auch in PHP. Wenn man es kann, ist es sehr einfach damit Regeln zu schreiben, die selbst komplexeste Texte durchsuchen können. So zum Beispiel könnte ich mir in einem Quelltext einer HTML-Seite</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-nach-zeichen-suchen/" rel="bookmark" title="29. Juli 2010">Tutorial Regular Expressions: Nach Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/" rel="bookmark" title="2. August 2010">Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/" rel="bookmark" title="4. August 2010">Tutorial Regular Expressions: Die Position einer Zeichenkette</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/" rel="bookmark" title="11. August 2010">Tutorial Regular Expressions: Wiederholungen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/" rel="bookmark" title="21. Oktober 2009">Tutorial OpenGeoDB – Die Installation der Datenbank</a></li>
</ul><!-- Similar Posts took 7.971 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/#comments">Bisher kein Kommentar - Schreibe den Ersten!</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/regex/" rel="tag">regex</a>, <a href="http://www.guido-muehlwitz.de/tag/regulaere-ausdruecke/" rel="tag">Reguläre Ausdrücke</a>, <a href="http://www.guido-muehlwitz.de/tag/tutorial/" rel="tag">Tutorial</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-eine-einfuehrung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Analytics GA.PI() – Klasse um Analytics mit PHP auszulesen</title>
		<link>http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen</link>
		<comments>http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 09:16:41 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=1290</guid>
		<description><![CDATA[Dass Google Analytics eine API anbietet, um direkt Daten auszulesen und diese selbst darzustellen ist nichts Neues. Wie bei allen APIs stellt sich aber die Frage: Wie mache ich das mit PHP und wie bekomme ich eine Authentifizierung hin. Zumindest Letzteres wird bei den Anbietern von APIs (zum Beispiel Amazon) immer mystischer und man kann [...]]]></description>
			<content:encoded><![CDATA[<p>Dass Google Analytics eine API anbietet, um direkt Daten auszulesen und diese selbst darzustellen ist nichts Neues. Wie bei allen APIs stellt sich aber die Frage: Wie mache ich das mit PHP und wie bekomme ich eine Authentifizierung hin. Zumindest Letzteres wird bei den Anbietern von APIs (zum Beispiel Amazon) immer mystischer und man kann mit einem gesunden PHP-Halbwissen in der Regel solche APIs nicht mehr verwenden.</p>
<p>Die PHP-Klasse <a href="http://code.google.com/p/gapi-google-analytics-php-interface/">ga.pi()</a> hat sich auf die Fahne geschrieben, alles einfacher zu machen. Aber dann hört es zum Thema einfach dann auch schon auf, denn die Google Analytics API funktioniert keineswegs so, dass man „mal eben“ die Daten abgreifen kann, die online dargestellt werden. Die Darstellungsschicht hat nicht viel mit der API zu tun und interpretiert die zur Verfügung gestellten Daten seinerseits. Wollte man also eine 1:1-kopie der Analytics-Oberfläche erstellen, ist dies keineswegs in 5 Minuten erledigt.</p>
<p>Auch zu bedenken ist, dass ich Daten bekomme, und keine Graphen! Die Visualisierung ist demnach die Aufgabe des Programms. Entsprechend muss man sich nun mit <em>Dimensions</em> und <em>Metrics</em> herumschlagen. Eine Dimension ist im Data Warehouse eine Eingrenzung der Daten um ein bestimmtes Kriterium. Eine Dimension ist zum Beispiel der <em>Browser des Benutzers</em>, oder zum Beispiel <em>die abgerufenen URLs</em>. Ein <em>Metric</em> dagegen ein Zahlenwert für eine bestimmte Anfrage wie zum Beispiel <em>Anzahl der neuen Besucher</em> oder <em>Anzahl der Page Views</em>.</p>
<p>Die ga.pi() kann zumindest kleine Teile des Umgangs mit der API vereinfachen. Code-Diesel hat hierzu <a href="http://www.codediesel.com/php/reading-google-analytics-data-from-php/">ein nettes Tutorial</a> veröffentlicht, das die Handhabung der Klasse prima erklärt. Die Authentifizierung ist vollkommen transparent, und der Abruf von Daten nicht all zu schwer. Zusammen mit einer vernünftigen Graphen-Klasse sollte man so schnell zu einer spezialisierten Analytics-Anwendung kommen.</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F&amp;title=Google%20Analytics%20GA.PI%28%29%20%E2%80%93%20Klasse%20um%20Analytics%20mit%20PHP%20auszulesen&amp;notes=Dass%20Google%20Analytics%20eine%20API%20anbietet%2C%20um%20direkt%20Daten%20auszulesen%20und%20diese%20selbst%20darzustellen%20ist%20nichts%20Neues.%20Wie%20bei%20allen%20APIs%20stellt%20sich%20aber%20die%20Frage%3A%20Wie%20mache%20ich%20das%20mit%20PHP%20und%20wie%20bekomme%20ich%20eine%20Authentifizierung%20hin.%20Zumindest%20Let" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F&amp;title=Google%20Analytics%20GA.PI%28%29%20%E2%80%93%20Klasse%20um%20Analytics%20mit%20PHP%20auszulesen&amp;bodytext=Dass%20Google%20Analytics%20eine%20API%20anbietet%2C%20um%20direkt%20Daten%20auszulesen%20und%20diese%20selbst%20darzustellen%20ist%20nichts%20Neues.%20Wie%20bei%20allen%20APIs%20stellt%20sich%20aber%20die%20Frage%3A%20Wie%20mache%20ich%20das%20mit%20PHP%20und%20wie%20bekomme%20ich%20eine%20Authentifizierung%20hin.%20Zumindest%20Let" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F&amp;title=Google%20Analytics%20GA.PI%28%29%20%E2%80%93%20Klasse%20um%20Analytics%20mit%20PHP%20auszulesen&amp;annotation=Dass%20Google%20Analytics%20eine%20API%20anbietet%2C%20um%20direkt%20Daten%20auszulesen%20und%20diese%20selbst%20darzustellen%20ist%20nichts%20Neues.%20Wie%20bei%20allen%20APIs%20stellt%20sich%20aber%20die%20Frage%3A%20Wie%20mache%20ich%20das%20mit%20PHP%20und%20wie%20bekomme%20ich%20eine%20Authentifizierung%20hin.%20Zumindest%20Let" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F&amp;bm_description=Google%20Analytics%20GA.PI%28%29%20%E2%80%93%20Klasse%20um%20Analytics%20mit%20PHP%20auszulesen&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F&amp;t=Google%20Analytics%20GA.PI%28%29%20%E2%80%93%20Klasse%20um%20Analytics%20mit%20PHP%20auszulesen" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Google%20Analytics%20GA.PI%28%29%20%E2%80%93%20Klasse%20um%20Analytics%20mit%20PHP%20auszulesen%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F02%2Fgoogle-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen%2F&amp;title=Google%20Analytics%20GA.PI%28%29%20%E2%80%93%20Klasse%20um%20Analytics%20mit%20PHP%20auszulesen" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/" title="Google Analytics GA.PI() – Klasse um Analytics mit PHP auszulesen" rev="flattr;uid:16555;language:de_DE;category:text;tags:API,Google Analytics,PHP;button:compact;">Dass Google Analytics eine API anbietet, um direkt Daten auszulesen und diese selbst darzustellen ist nichts Neues. Wie bei allen APIs stellt sich aber die Frage: Wie mache ich das mit PHP und wie bekomme ich eine Authentifizierung hin. Zumindest Letzteres wird bei den Anbietern von APIs (zum Beispiel Amazon) immer mystischer und man kann mit einem gesunden PHP-Halbwissen in der Regel solche APIs nicht mehr verwenden.

Die PHP-Klasse ga.pi() hat sich auf die Fahne geschrieben, alles einfacher zu machen. Aber dann hört es zum Thema einfach dann auch schon auf, denn die Google Analytics API funktioniert keineswegs so, dass man „mal eben“ die Daten abgreifen kann, die online dargestellt werden. Die Darstellungsschicht hat nicht viel mit der API zu tun und interpretiert die zur Verfügung gestellten Daten seinerseits. Wollte man also eine 1:1-kopie der Analytics-Oberfläche erstellen, ist dies keineswegs in 5 Minuten erledigt.

Auch zu bedenken ist, dass ich Daten bekomme, und keine Graphen! Die Visualis</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2009/11/wordpress-statistiken/" rel="bookmark" title="23. November 2009">WordPress Statistiken</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/01/ip-adressen-geolocation-xml-api/" rel="bookmark" title="6. Januar 2010">IP-Adressen Geolocation XML API</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/" rel="bookmark" title="14. Januar 2010">Sinnvolles HTML in PHP mit dem HTML Purifier</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/" rel="bookmark" title="2. November 2009">Smarty 3.0 Beta 1 veröffentlicht</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/" rel="bookmark" title="9. Dezember 2009">Online Entwicklungsumgebungen für PHP</a></li>
</ul><!-- Similar Posts took 8.329 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/#comments">Bisher kein Kommentar - Schreibe den Ersten!</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/api/" rel="tag">API</a>, <a href="http://www.guido-muehlwitz.de/tag/google-analytics/" rel="tag">Google Analytics</a>, <a href="http://www.guido-muehlwitz.de/tag/php/" rel="tag">PHP</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sinnvolles HTML in PHP mit dem HTML Purifier</title>
		<link>http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sinnvolles-html-in-php-mit-dem-html-purifier</link>
		<comments>http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 07:49:54 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=1119</guid>
		<description><![CDATA[Es kommt im Leben eines Programmierers stets der Punkt, wo er sich durch die Weiten des HTML graben, und es insbesondere mit PHP interpretieren muss. Natürlich könnte man jetzt argumentieren das heutzutage Templates das regeln aber das Problem liegt ganz wo anders: Alt-Anwendungen und WYSIWYG-HTML-Editoren. Erstere haben es nicht so Ernst genommen mit dem Standardkonformen, [...]]]></description>
			<content:encoded><![CDATA[<p>Es kommt im Leben eines Programmierers stets der Punkt, wo er sich durch die Weiten des HTML graben, und es insbesondere mit PHP interpretieren muss. Natürlich könnte man jetzt argumentieren das heutzutage Templates das regeln aber das Problem liegt ganz wo anders: Alt-Anwendungen und WYSIWYG-HTML-Editoren.</p>
<p>Erstere haben es nicht so Ernst genommen mit dem Standardkonformen, zweitere haben in der Regel auch ihre eigene Auslegung davon, was valides HTML ist. Hinzu kommt aber noch ein dritte Anwendungsmöglichkeit: Cross-Site Scripting! Über HTML-Injection könnte über den WYSIWYG-Editor nämlich durchaus schadhafter Code in eine Web-Anwendung eingeschleust werden. Natürlich könnte man jetzt argumentieren, dass nur vertrauenswürdige Personen HTML liefern dürfen. Die Realität sieht aber in der Regel anders aus: Hier braucht man nur einmal an die Kommentarfunktion von WordPress zu denken, oder die Tatsache, dass ein bekannter Bundespolitiker es nicht geschafft hat, seine Typo3-Installation geeignet zu schützen.</p>
<p>Entsprechend ist klar, dass man als Programmierer mehrere Aufgaben hat: Man muss dafür sorgen, dass alles standardkonform ist (und am besten bereits so abgespeichert wird) und man muss zusätzlich auf das Einschleusen von Schadcode testen! Viele Open Source-Anwendungen behelfen sich hier damit, die Anzahl der möglichen HTML-Tags zu begrenzen. Dies ist leider eine nicht so gute Idee, da das Ergebnis deshalb noch lange nicht valides HTML ist.</p>
<div id="attachment_1121" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.guido-muehlwitz.de/wp-content/uploads/2010/01/HTML-Purifier.png"><img class="size-medium wp-image-1121" title="Screenshot der HTML-Purifier-Homepage" src="http://www.guido-muehlwitz.de/wp-content/uploads/2010/01/HTML-Purifier-300x177.png" alt="Screenshot der HTML-Purifier-Homepage" width="300" height="177" /></a><p class="wp-caption-text">Screenshot der HTML-Purifier-Homepage</p></div>
<p>Warum ich das alles erzähle? Der <a href="http://htmlpurifier.org/">HTML Purifier</a> ist in der Version 4.0 für PHP5 erschienen. Der rattenschnelle Parser überprüft den Code und formt ihn zu standardkonformen HTML um. Überprüfen heißt hierbei: Verhindern von Cross-Site Scripting Attacken.</p>
<p>Die beiden Content Management Systeme <a href="http://www.impresscms.de/">ImpressCMS</a> und <a href="http://www.midgard-project.org/">Midgard</a> setzen fest auf den HTML Purifier und liefern diesen bereits mit dem Core aus. Aber neben vielen weiteren Systemen kann man den HTML Purifier mittels eines einfachen Plugins auch in <a href="http://urbangiraffe.com/plugins/html-purified/">WordPress</a>, <a href="http://bart.motd.be/projects/html-purifier-drupal-module">Drupal</a> und <a href="http://htmlpurifier.org/dev/plugins/modx.txt">MODx</a> einbinden. <a href="http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,4094/Itemid,35/">Joomla</a>, <a href="http://mindloop.be/htmlpurifier-and-the-codeigniter-framework/">CodeIgniter</a> und <a href="http://www.symfony-project.org/plugins/sfXssSafePlugin">Symfony</a> Plugins sind ebenfalls verfügbar.</p>
<p>Das Teil ist so etwas wie das Schweizer Taschenmesser des HTML-Parsing in HTML, also werft <a href="http://php.net/manual/en/function.strip-tags.php">strip_tags</a> in die Ecke und versucht es einmal mit einem richtigen Parser :)</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F&amp;title=Sinnvolles%20HTML%20in%20PHP%20mit%20dem%20HTML%20Purifier&amp;notes=Es%20kommt%20im%20Leben%20eines%20Programmierers%20stets%20der%20Punkt%2C%20wo%20er%20sich%20durch%20die%20Weiten%20des%20HTML%20graben%2C%20und%20es%20insbesondere%20mit%20PHP%20interpretieren%20muss.%20Nat%C3%BCrlich%20k%C3%B6nnte%20man%20jetzt%20argumentieren%20das%20heutzutage%20Templates%20das%20regeln%20aber%20das%20Problem%20lieg" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F&amp;title=Sinnvolles%20HTML%20in%20PHP%20mit%20dem%20HTML%20Purifier&amp;bodytext=Es%20kommt%20im%20Leben%20eines%20Programmierers%20stets%20der%20Punkt%2C%20wo%20er%20sich%20durch%20die%20Weiten%20des%20HTML%20graben%2C%20und%20es%20insbesondere%20mit%20PHP%20interpretieren%20muss.%20Nat%C3%BCrlich%20k%C3%B6nnte%20man%20jetzt%20argumentieren%20das%20heutzutage%20Templates%20das%20regeln%20aber%20das%20Problem%20lieg" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F&amp;title=Sinnvolles%20HTML%20in%20PHP%20mit%20dem%20HTML%20Purifier&amp;annotation=Es%20kommt%20im%20Leben%20eines%20Programmierers%20stets%20der%20Punkt%2C%20wo%20er%20sich%20durch%20die%20Weiten%20des%20HTML%20graben%2C%20und%20es%20insbesondere%20mit%20PHP%20interpretieren%20muss.%20Nat%C3%BCrlich%20k%C3%B6nnte%20man%20jetzt%20argumentieren%20das%20heutzutage%20Templates%20das%20regeln%20aber%20das%20Problem%20lieg" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F&amp;bm_description=Sinnvolles%20HTML%20in%20PHP%20mit%20dem%20HTML%20Purifier&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F&amp;t=Sinnvolles%20HTML%20in%20PHP%20mit%20dem%20HTML%20Purifier" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Sinnvolles%20HTML%20in%20PHP%20mit%20dem%20HTML%20Purifier%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2010%2F01%2Fsinnvolles-html-in-php-mit-dem-html-purifier%2F&amp;title=Sinnvolles%20HTML%20in%20PHP%20mit%20dem%20HTML%20Purifier" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/" title="Sinnvolles HTML in PHP mit dem HTML Purifier" rev="flattr;uid:16555;language:de_DE;category:text;tags:HTML,PHP,XSS;button:compact;">Es kommt im Leben eines Programmierers stets der Punkt, wo er sich durch die Weiten des HTML graben, und es insbesondere mit PHP interpretieren muss. Natürlich könnte man jetzt argumentieren das heutzutage Templates das regeln aber das Problem liegt ganz wo anders: Alt-Anwendungen und WYSIWYG-HTML-Editoren.

Erstere haben es nicht so Ernst genommen mit dem Standardkonformen, zweitere haben in der Regel auch ihre eigene Auslegung davon, was valides HTML ist. Hinzu kommt aber noch ein dritte Anwendungsmöglichkeit: Cross-Site Scripting! Über HTML-Injection könnte über den WYSIWYG-Editor nämlich durchaus schadhafter Code in eine Web-Anwendung eingeschleust werden. Natürlich könnte man jetzt argumentieren, dass nur vertrauenswürdige Personen HTML liefern dürfen. Die Realität sieht aber in der Regel anders aus: Hier braucht man nur einmal an die Kommentarfunktion von Wordpress zu denken, oder die Tatsache, dass ein bekannter Bundespolitiker es nicht geschafft hat, seine Typo3-Installation geeignet zu </a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2010/01/html-validierung-mit-firefox/" rel="bookmark" title="12. Januar 2010">HTML-Validierung mit Firefox</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/02/linkcheck-mit-css3/" rel="bookmark" title="12. Februar 2010">Linkcheck mit CSS3</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/" rel="bookmark" title="9. Dezember 2009">Online Entwicklungsumgebungen für PHP</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/02/multiple-file-uploads/" rel="bookmark" title="9. Februar 2010">Multiple File Uploads, HTML und Open Source</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/01/drupal-weisse-seite/" rel="bookmark" title="29. Januar 2010">Drupal, die White Screen of Death und das Byte Order Mark</a></li>
</ul><!-- Similar Posts took 8.047 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/#comments">Bisher kein Kommentar - Schreibe den Ersten!</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/html/" rel="tag">HTML</a>, <a href="http://www.guido-muehlwitz.de/tag/php/" rel="tag">PHP</a>, <a href="http://www.guido-muehlwitz.de/tag/xss/" rel="tag">XSS</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online Entwicklungsumgebungen für PHP</title>
		<link>http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=online-entwicklungsumgebungen-fuer-php</link>
		<comments>http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 09:27:04 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=1028</guid>
		<description><![CDATA[Nunja, ich gebe zu, der Titel ist etwas reißerisch, denn von einer richten Entwicklungsumgebung kann man wohl kaum sprechen! Dennoch sind mir in der letzten Woche zwei Online-Editoren ins Auge gefallen, über die ein kleiner Beitrag lohnt! Natürlich fragt sich jetzt jeder, wieso ich online PHP-Dateien editieren möchte!? Berechtigte Frage! In 99,5% der Fälle reicht [...]]]></description>
			<content:encoded><![CDATA[<p>Nunja, ich gebe zu, der Titel ist etwas reißerisch, denn von einer richten Entwicklungsumgebung kann man wohl kaum sprechen! Dennoch sind mir in der letzten Woche zwei Online-Editoren ins Auge gefallen, über die ein kleiner Beitrag lohnt! Natürlich fragt sich jetzt jeder, wieso ich online PHP-Dateien editieren möchte!? Berechtigte Frage! In 99,5% der Fälle reicht wohl ein normale Entwicklungsumgebung auf dem Desktop. Verbunden mit einer schönen Versionierung ist dann auch das Arbeiten im Team abgesichert.</p>
<p>Wenn man jetzt aber mit seinem Netbook im ICE sitzt, erst gar keine Versionierung hat und trotzdem einem Kollegen helfen will ist ein Online-Code-Editor Gold wert. Denn einer der großen Vorteile dieser Online-Anwendungen ist die Kollaboration – also das Arbeiten im Team. Ohne großen Aufwand können Teams von jedem Platz dieses Planeten (inkl. des Internetcafés in Kuala Lumpur) ohne die Notwendigkeit lokal auf dem Rechner etwas installieren zu müssen Code editieren.</p>
<h1>PHPanywhere.Net</h1>
<p><a href="http://phpanywhere.net" target="_blank">PHPanywhere</a> kommt einer Entwicklungsumgebung schon ganz nahe. Es beherrscht Code Highlighting und unbegrenztes Undo/Redo. Darüber hinaus ist Code Completion angekündigt! Der größte Vorteil von PHPanywhere ist allerdings der FTP-Explorer, mit dem ich mich in jeden beliebigen FTP-Server einloggen, und dort PHP-Dateien editieren kann. Darüber hinaus kann PHPanywhere auch Projekte verwalten und natürlich auch lokale Files. Mit dem Tool ist es also kein Problem mal eben irgendwo schnell eine PHP-Datei zu editieren, wenn man nicht über die geeigneten Möglichkeiten verfügt. Der Service ist derzeit kostenlos.</p>
<div id="attachment_1029" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.guido-muehlwitz.de/wp-content/uploads/2009/12/phpanywhere.jpg"><img class="size-medium wp-image-1029" title="Screenshot von PHPanywhere" src="http://www.guido-muehlwitz.de/wp-content/uploads/2009/12/phpanywhere-300x187.jpg" alt="Screenshot von PHPanywhere" width="300" height="187" /></a><p class="wp-caption-text">Screenshot von PHPanywhere</p></div>
<h1>CodeRun Studio</h1>
<p><a href="http://www.coderun.com/ide/" target="_blank">CodeRun Studio</a> ist wesentlich mächtiger als PHPanywhere und derzeit ebenfalls kostenlos. Es entspricht der allgemeinen Vorstellung einer Entwicklungsumgebung eher. Neben PHP kann man in der Online-Anwendung auch C#, .NET, JavaScript, HTML und CSS programmieren.  Es bietet Support für die Amazon SimpleDB (und scheinbar dummerweise keinen für MySQL) und hat mal das Stichwort „Cloud“ in den Ring geworfen. CodeRun hat sich auf die Fahne geschrieben DIE Entwicklungsumgebung für die Cloud zu werden, man darf abwarten, ob man das schafft. Genau aus diesem Grund verfügt CodeRun allerdings interessante Möglichkeiten Code zu sharen! Ohne MySQL-Support sehe ich da allerdings schwarz – und ob es sinnvoll ist einen solchen Service anzubieten, und diesen dann nicht kompatibel zum IE8 zu halten, sei mal dahin gestellt :)</p>
<div id="attachment_1032" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.guido-muehlwitz.de/wp-content/uploads/2009/12/coderun.jpg"><img class="size-medium wp-image-1032" title="Screenshot von Coderun" src="http://www.guido-muehlwitz.de/wp-content/uploads/2009/12/coderun-300x158.jpg" alt="Screenshot von Coderun" width="300" height="158" /></a><p class="wp-caption-text">Screenshot von Coderun</p></div>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F&amp;title=Online%20Entwicklungsumgebungen%20f%C3%BCr%20PHP&amp;notes=Nunja%2C%20ich%20gebe%20zu%2C%20der%20Titel%20ist%20etwas%20rei%C3%9Ferisch%2C%20denn%20von%20einer%20richten%20Entwicklungsumgebung%20kann%20man%20wohl%20kaum%20sprechen%21%20Dennoch%20sind%20mir%20in%20der%20letzten%20Woche%20zwei%20Online-Editoren%20ins%20Auge%20gefallen%2C%20%C3%BCber%20die%20ein%20kleiner%20Beitrag%20lohnt%21%20Nat%C3%BCrlic" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F&amp;title=Online%20Entwicklungsumgebungen%20f%C3%BCr%20PHP&amp;bodytext=Nunja%2C%20ich%20gebe%20zu%2C%20der%20Titel%20ist%20etwas%20rei%C3%9Ferisch%2C%20denn%20von%20einer%20richten%20Entwicklungsumgebung%20kann%20man%20wohl%20kaum%20sprechen%21%20Dennoch%20sind%20mir%20in%20der%20letzten%20Woche%20zwei%20Online-Editoren%20ins%20Auge%20gefallen%2C%20%C3%BCber%20die%20ein%20kleiner%20Beitrag%20lohnt%21%20Nat%C3%BCrlic" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F&amp;title=Online%20Entwicklungsumgebungen%20f%C3%BCr%20PHP&amp;annotation=Nunja%2C%20ich%20gebe%20zu%2C%20der%20Titel%20ist%20etwas%20rei%C3%9Ferisch%2C%20denn%20von%20einer%20richten%20Entwicklungsumgebung%20kann%20man%20wohl%20kaum%20sprechen%21%20Dennoch%20sind%20mir%20in%20der%20letzten%20Woche%20zwei%20Online-Editoren%20ins%20Auge%20gefallen%2C%20%C3%BCber%20die%20ein%20kleiner%20Beitrag%20lohnt%21%20Nat%C3%BCrlic" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F&amp;bm_description=Online%20Entwicklungsumgebungen%20f%C3%BCr%20PHP&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F&amp;t=Online%20Entwicklungsumgebungen%20f%C3%BCr%20PHP" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Online%20Entwicklungsumgebungen%20f%C3%BCr%20PHP%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F12%2Fonline-entwicklungsumgebungen-fuer-php%2F&amp;title=Online%20Entwicklungsumgebungen%20f%C3%BCr%20PHP" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/" title="Online Entwicklungsumgebungen für PHP" rev="flattr;uid:16555;language:de_DE;category:text;tags:Entwicklungsumgebung,PHP;button:compact;">Nunja, ich gebe zu, der Titel ist etwas reißerisch, denn von einer richten Entwicklungsumgebung kann man wohl kaum sprechen! Dennoch sind mir in der letzten Woche zwei Online-Editoren ins Auge gefallen, über die ein kleiner Beitrag lohnt! Natürlich fragt sich jetzt jeder, wieso ich online PHP-Dateien editieren möchte!? Berechtigte Frage! In 99,5% der Fälle reicht wohl ein normale Entwicklungsumgebung auf dem Desktop. Verbunden mit einer schönen Versionierung ist dann auch das Arbeiten im Team abgesichert.

Wenn man jetzt aber mit seinem Netbook im ICE sitzt, erst gar keine Versionierung hat und trotzdem einem Kollegen helfen will ist ein Online-Code-Editor Gold wert. Denn einer der großen Vorteile dieser Online-Anwendungen ist die Kollaboration – also das Arbeiten im Team. Ohne großen Aufwand können Teams von jedem Platz dieses Planeten (inkl. des Internetcafés in Kuala Lumpur) ohne die Notwendigkeit lokal auf dem Rechner etwas installieren zu müssen Code editieren.
PHPanywhere.Net
PHPanywher</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/" rel="bookmark" title="2. November 2009">Smarty 3.0 Beta 1 veröffentlicht</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/" rel="bookmark" title="14. Januar 2010">Sinnvolles HTML in PHP mit dem HTML Purifier</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/" rel="bookmark" title="15. Februar 2010">Google Analytics GA.PI() – Klasse um Analytics mit PHP auszulesen</a></li>
</ul><!-- Similar Posts took 6.843 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/#comments">Bisher kein Kommentar - Schreibe den Ersten!</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/entwicklungsumgebung/" rel="tag">Entwicklungsumgebung</a>, <a href="http://www.guido-muehlwitz.de/tag/php/" rel="tag">PHP</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kohana &#8211; das schnelle PHP-Framework</title>
		<link>http://www.guido-muehlwitz.de/2009/11/kohana-das-schnelle-php-framework/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=kohana-das-schnelle-php-framework</link>
		<comments>http://www.guido-muehlwitz.de/2009/11/kohana-das-schnelle-php-framework/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 11:34:38 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Kohana]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=941</guid>
		<description><![CDATA[Ein PHP-Framework, das schnell ist, gibt es nicht? Gibt es doch! Nämlich Kohana. Das kleine schlanke Framework ist voll in PHP5-OOP geschrieben und war einmal ein Fork von CodeIgniter. Dabei besticht Kohana vor allem dadurch, das man sich den Quelltext angucken kann ohne ein Magengeschwür zu bekommen, im Gegensatz zu anderen Frameworks oder PHP-Applikationen. Dabei [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-943" src="http://www.guido-muehlwitz.de/wp-content/uploads/2009/11/kohana.png" alt="" width="394" height="161" />Ein PHP-Framework, das schnell ist, gibt es nicht? Gibt es doch! Nämlich <a href="http://www.kohanaphp.de/" target="_blank">Kohana</a>. Das kleine schlanke Framework ist voll in PHP5-OOP geschrieben und war einmal ein Fork von <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a>. Dabei besticht Kohana vor allem dadurch, das man sich den Quelltext angucken kann ohne ein Magengeschwür zu bekommen, im Gegensatz zu anderen Frameworks oder PHP-Applikationen.</p>
<p>Dabei ist es noch nicht einmal selbstverständlich das ein PHP-Framework schnell sein muss. Mein Lieblingsbeispiel ist da inzwischen Magento, das es geschafft hat die Pear, das Zend Framework und bis zum Anschlag XML-Dateien zu verwenden, was in etwas endet was – bin ich mal nett: performanter hätte sein können :) Wobei man auch fair bleiben muss, Magento ist ja im eigentlichen Sinne kein Framework.</p>
<p>Der Einsatz von Frameworks und damit der Einsatz des MVC-Modells wird in der PHP-Welt immer beliebter. Als Beispiel kann da schon mal das <a href="http://framework.zend.com/" target="_blank">Zend Framework</a> herhalten, auf das sich derzeit jede deutsche Agentur als heilende Allzweckwaffe stürzt. <a href="http://cakephp.org/" target="_blank">CakePHP</a> leistet ähnliches und das bereits genannte CodeIgniter gibt es natürlich auch noch. Alle haben den Nachteil, dass man sich erstmal einarbeiten muss, und am Anfang garantiert alles so macht, das es garantiert die meisten Ressourcen frisst. Eine andere Lösung wäre in der Regel schöner und schneller gewesen. Und so hilft bei Frameworks oft nur der häufige Umgang und die Erfahrung.</p>
<p>Kohana ist per se schnell, schmal und gut überschaubar. Die Lernkurve ist vergleichbar gering und das Konzept hinter dem Framework überzeugt. Dabei erfindet Kohana das Rad im Gegensatz zu anderen Frameworks nicht neu. Zum Beispiel erhält Kohana $_GET und $_POST, auf einen XSS-Schutz braucht man deshalb aber nicht zu verzichten, dies hält Kohana vollkommen transparent. Einen Hinweis auf die wahnsinnig gute Ereignisbehandlung erspare ich euch gerade mal, stattdessen möchte ich noch auf die kaskadierenden Ressourcen hinweisen!</p>
<p>Kaskadierende was? Genau die! :) Kohana baut darauf auf, dass wirklich alles überladen werden kann. Und wenn mehrere Module die gleiche Core-Klasse überladen, ist das auch kein Thema. Denn eine Maxime von Kohana ist die bedingungslose Erweiterbarkeit aller System-Komponenten. Das sieht man zum Beispiel auch in der Session-Verwaltung. Diese unterstützt Treiber und bereits der Core ermöglicht es, die Session-Daten direkt im Cookie, im Filesystem oder in einer Datenbank abzulegen. Ich könnte aber auch einfach einen eigenen Treiber programmieren um zum Beispiel die Daten in CouchDB abzulegen. Das macht zwar nicht wirklich Sinn, aber wenn ich wollte, könnte ich es :)</p>
<p>Wer sich für Kohana interessiert, kann sich hier ein nettes <a href="http://net.tutsplus.com/tutorials/php/kohana-the-swift-php-framework/" target="_blank">Tutorial</a> anschauen, oder mal auf der <a href="http://www.kohanaphp.de/" target="_blank">deutschen Homepage</a> vorbei schauen. Oder einfach mal Kohana für die Entwicklung des nächsten <a href="http://wordpress.org/extend/plugins/kohana-for-wordpress/" target="_blank">WordPress-Plugins</a> verwenden.</p>
<p>Am Schluss noch eine kleine Warnung! Kohana 3 ist auf dem Weg und so wie es aussieht, wird es nicht vollkommen abwärts kompatibel sein! Neben einem kompletten Code Rewrite wird Kohana 3 nach meinem Wissen als erstes PHP-Framework anstatt des <a href="http://de.wikipedia.org/wiki/Model_View_Controller" target="_blank">MVC-Modells</a> das <a href="http://en.wikipedia.org/wiki/Presentation-abstraction-control" target="_blank">HMVC-Modell</a> verwenden!</p>
<p>Das HMVC-Modell (Hierarchical-Model-View-Controller) in Kohana liegt eine ziemlich geniale Idee zugrunde. In bisherigen Frameworks ist es so, das aufgrund eines Requests im Framework <em>EIN</em> bestimmter Prozess mit <em>EINEM</em> Model, <em>EINEM</em> View und <em>EINEM</em> Controller ausgeführt wird. Im HMVC-Modell kann ein Request gleich mehrere Prozesse auslösen, die miteinander kombiniert werden. Anwendungen werden somit noch modularer und die Wiederverwertbarkeit von Code noch höher!</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F&amp;title=Kohana%20-%20das%20schnelle%20PHP-Framework&amp;notes=Ein%20PHP-Framework%2C%20das%20schnell%20ist%2C%20gibt%20es%20nicht%3F%20Gibt%20es%20doch%21%20N%C3%A4mlich%20Kohana.%20Das%20kleine%20schlanke%20Framework%20ist%20voll%20in%20PHP5-OOP%20geschrieben%20und%20war%20einmal%20ein%20Fork%20von%20CodeIgniter.%20Dabei%20besticht%20Kohana%20vor%20allem%20dadurch%2C%20das%20man%20sich%20den%20Quellt" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F&amp;title=Kohana%20-%20das%20schnelle%20PHP-Framework&amp;bodytext=Ein%20PHP-Framework%2C%20das%20schnell%20ist%2C%20gibt%20es%20nicht%3F%20Gibt%20es%20doch%21%20N%C3%A4mlich%20Kohana.%20Das%20kleine%20schlanke%20Framework%20ist%20voll%20in%20PHP5-OOP%20geschrieben%20und%20war%20einmal%20ein%20Fork%20von%20CodeIgniter.%20Dabei%20besticht%20Kohana%20vor%20allem%20dadurch%2C%20das%20man%20sich%20den%20Quellt" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F&amp;title=Kohana%20-%20das%20schnelle%20PHP-Framework&amp;annotation=Ein%20PHP-Framework%2C%20das%20schnell%20ist%2C%20gibt%20es%20nicht%3F%20Gibt%20es%20doch%21%20N%C3%A4mlich%20Kohana.%20Das%20kleine%20schlanke%20Framework%20ist%20voll%20in%20PHP5-OOP%20geschrieben%20und%20war%20einmal%20ein%20Fork%20von%20CodeIgniter.%20Dabei%20besticht%20Kohana%20vor%20allem%20dadurch%2C%20das%20man%20sich%20den%20Quellt" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F&amp;bm_description=Kohana%20-%20das%20schnelle%20PHP-Framework&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F&amp;t=Kohana%20-%20das%20schnelle%20PHP-Framework" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Kohana%20-%20das%20schnelle%20PHP-Framework%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fkohana-das-schnelle-php-framework%2F&amp;title=Kohana%20-%20das%20schnelle%20PHP-Framework" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2009/11/kohana-das-schnelle-php-framework/" title="Kohana &#8211; das schnelle PHP-Framework" rev="flattr;uid:16555;language:de_DE;category:text;tags:Kohana;button:compact;">Ein PHP-Framework, das schnell ist, gibt es nicht? Gibt es doch! Nämlich Kohana. Das kleine schlanke Framework ist voll in PHP5-OOP geschrieben und war einmal ein Fork von CodeIgniter. Dabei besticht Kohana vor allem dadurch, das man sich den Quelltext angucken kann ohne ein Magengeschwür zu bekommen, im Gegensatz zu anderen Frameworks oder PHP-Applikationen.

Dabei ist es noch nicht einmal selbstverständlich das ein PHP-Framework schnell sein muss. Mein Lieblingsbeispiel ist da inzwischen Magento, das es geschafft hat die Pear, das Zend Framework und bis zum Anschlag XML-Dateien zu verwenden, was in etwas endet was – bin ich mal nett: performanter hätte sein können :) Wobei man auch fair bleiben muss, Magento ist ja im eigentlichen Sinne kein Framework.

Der Einsatz von Frameworks und damit der Einsatz des MVC-Modells wird in der PHP-Welt immer beliebter. Als Beispiel kann da schon mal das Zend Framework herhalten, auf das sich derzeit jede deutsche Agentur als heilende Allzweckwaffe stürzt. Cake</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul>Keine gefunden
</ul><!-- Similar Posts took 3.664 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2009/11/kohana-das-schnelle-php-framework/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2009/11/kohana-das-schnelle-php-framework/#comments">8 Kommentare</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/kohana/" rel="tag">Kohana</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2009/11/kohana-das-schnelle-php-framework/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Smarty 3.0 Beta 1 veröffentlicht</title>
		<link>http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=smarty-3-0-beta-1-veroeffentlicht</link>
		<comments>http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 14:50:44 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=896</guid>
		<description><![CDATA[Ich gebe zu das Smarty ein persönlicher Liebling von mir ist. Zum einen kann ich damit erreichen das mein PHP-Code keinen „Optimierungen“ von Designern (sorry!) zum Opfer fällt, zum anderen können diese dennoch großen Einfluss auf die Darstellung von Daten nehmen, da Smarty eine eigene Skriptsprache implementiert hat. Nun ist es soweit, die Version 3.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Ich gebe zu das Smarty ein persönlicher Liebling von mir ist. Zum einen kann ich damit erreichen das mein PHP-Code keinen „Optimierungen“ von Designern (sorry!) zum Opfer fällt, zum anderen können diese dennoch großen Einfluss auf die Darstellung von Daten nehmen, da Smarty eine eigene Skriptsprache implementiert hat.</p>
<p>Nun ist es soweit, die Version 3.0 ist in der Beta da! Und (neben einigem anderen) ist Speed die beste Neuerung in Smarty 3.0. Während die 2er Version wohl eher als „historisch gewachsen“ zu bezeichnen ist, so ist die 3er-Version ein kompletter Code Rewrite!</p>
<p>Was ist also neu neben der starken Verschnellerung der Darstellung? Zum Ersten ist Smarty 3 nun auf PHP5 und OOP ausgerichtet und zum anderen wurde die Smarty-Syntax stark erweitert. Was auch interessant ist, ist der verbesserte Cache. Vor allem in letzter Zeit gab es desöfteren das Problem, das man bei der Entwicklung den Cache am besten ganz ausschaltet oder diesen stets manuell löschen musste. Dies gehört jetzt wohl der Vergangenheit an!</p>
<p>Auch nett ist, dass das unselige {literal} Tag nun nicht mehr notwendig ist, da Smarty 3 nun CSS und JavaScript automatisch erkennt und dieses nicht mehr parsed. Ich kann an dieser Stelle durchaus zugeben, dass ich jedes Mal in die Falle mit dem Inline-JavaScript tappe.</p>
<p>Das Ganze ist noch ein wenig undokumentiert und am Besten <a href="http://www.smarty.net/download.php" target="_blank">zieht man sich einfach mal die Beta</a> und schaut sich die Demo-Templates an. Ein Blick ins <a href="http://www.smarty.net/forums/viewforum.php?f=29" target="_blank">Smarty3-Forum</a> lohnt sich auch. Vieles ist bekannt, aber auch das eine oder andere Neue lässt sich sofort erkennen. Viel Spaß dabei!</p>
<p>Siehe auch: <a href="http://www.guido-muehlwitz.de/2009/04/was-bringt-smarty-30/">Was bringt Smarty 3.0?</a></p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F&amp;title=Smarty%203.0%20Beta%201%20ver%C3%B6ffentlicht&amp;notes=Ich%20gebe%20zu%20das%20Smarty%20ein%20pers%C3%B6nlicher%20Liebling%20von%20mir%20ist.%20Zum%20einen%20kann%20ich%20damit%20erreichen%20das%20mein%20PHP-Code%20keinen%20%E2%80%9EOptimierungen%E2%80%9C%20von%20Designern%20%28sorry%21%29%20zum%20Opfer%20f%C3%A4llt%2C%20zum%20anderen%20k%C3%B6nnen%20diese%20dennoch%20gro%C3%9Fen%20Einfluss%20auf%20die%20Darstel" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F&amp;title=Smarty%203.0%20Beta%201%20ver%C3%B6ffentlicht&amp;bodytext=Ich%20gebe%20zu%20das%20Smarty%20ein%20pers%C3%B6nlicher%20Liebling%20von%20mir%20ist.%20Zum%20einen%20kann%20ich%20damit%20erreichen%20das%20mein%20PHP-Code%20keinen%20%E2%80%9EOptimierungen%E2%80%9C%20von%20Designern%20%28sorry%21%29%20zum%20Opfer%20f%C3%A4llt%2C%20zum%20anderen%20k%C3%B6nnen%20diese%20dennoch%20gro%C3%9Fen%20Einfluss%20auf%20die%20Darstel" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F&amp;title=Smarty%203.0%20Beta%201%20ver%C3%B6ffentlicht&amp;annotation=Ich%20gebe%20zu%20das%20Smarty%20ein%20pers%C3%B6nlicher%20Liebling%20von%20mir%20ist.%20Zum%20einen%20kann%20ich%20damit%20erreichen%20das%20mein%20PHP-Code%20keinen%20%E2%80%9EOptimierungen%E2%80%9C%20von%20Designern%20%28sorry%21%29%20zum%20Opfer%20f%C3%A4llt%2C%20zum%20anderen%20k%C3%B6nnen%20diese%20dennoch%20gro%C3%9Fen%20Einfluss%20auf%20die%20Darstel" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F&amp;bm_description=Smarty%203.0%20Beta%201%20ver%C3%B6ffentlicht&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F&amp;t=Smarty%203.0%20Beta%201%20ver%C3%B6ffentlicht" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Smarty%203.0%20Beta%201%20ver%C3%B6ffentlicht%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F11%2Fsmarty-3-0-beta-1-veroeffentlicht%2F&amp;title=Smarty%203.0%20Beta%201%20ver%C3%B6ffentlicht" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/" title="Smarty 3.0 Beta 1 veröffentlicht" rev="flattr;uid:16555;language:de_DE;category:text;tags:PHP,Smarty;button:compact;">Ich gebe zu das Smarty ein persönlicher Liebling von mir ist. Zum einen kann ich damit erreichen das mein PHP-Code keinen „Optimierungen“ von Designern (sorry!) zum Opfer fällt, zum anderen können diese dennoch großen Einfluss auf die Darstellung von Daten nehmen, da Smarty eine eigene Skriptsprache implementiert hat.

Nun ist es soweit, die Version 3.0 ist in der Beta da! Und (neben einigem anderen) ist Speed die beste Neuerung in Smarty 3.0. Während die 2er Version wohl eher als „historisch gewachsen“ zu bezeichnen ist, so ist die 3er-Version ein kompletter Code Rewrite!

Was ist also neu neben der starken Verschnellerung der Darstellung? Zum Ersten ist Smarty 3 nun auf PHP5 und OOP ausgerichtet und zum anderen wurde die Smarty-Syntax stark erweitert. Was auch interessant ist, ist der verbesserte Cache. Vor allem in letzter Zeit gab es desöfteren das Problem, das man bei der Entwicklung den Cache am besten ganz ausschaltet oder diesen stets manuell löschen musste. Dies gehört jetzt wohl </a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2010/01/sinnvolles-html-in-php-mit-dem-html-purifier/" rel="bookmark" title="14. Januar 2010">Sinnvolles HTML in PHP mit dem HTML Purifier</a></li>

<li><a href="http://www.guido-muehlwitz.de/2009/12/online-entwicklungsumgebungen-fuer-php/" rel="bookmark" title="9. Dezember 2009">Online Entwicklungsumgebungen für PHP</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/02/google-analytics-ga-pi-klasse-um-analytics-mit-php-auszulesen/" rel="bookmark" title="15. Februar 2010">Google Analytics GA.PI() – Klasse um Analytics mit PHP auszulesen</a></li>
</ul><!-- Similar Posts took 6.583 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/#comments">Bisher kein Kommentar - Schreibe den Ersten!</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/php/" rel="tag">PHP</a>, <a href="http://www.guido-muehlwitz.de/tag/smarty/" rel="tag">Smarty</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2009/11/smarty-3-0-beta-1-veroeffentlicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial OpenGeoDB – Die Installation der Datenbank</title>
		<link>http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tutorial-opengeodb-die-installation-der-datenbank</link>
		<comments>http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 13:34:43 +0000</pubDate>
		<dc:creator>Guido</dc:creator>
				<category><![CDATA[Google Maps / Geocoding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[OpenGeoDB]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.guido-muehlwitz.de/?p=870</guid>
		<description><![CDATA[Wer in Deutschland, Österreich und der Schweiz vernünftig geocodieren will, kommt in der Regel nicht an der OpenGeoDB vorbei. Google Maps ist da zwar ganz nett, aber OpenGeoDB verbindet Orte nicht nur mit einer Postleitzahl, sondern strukturiert ganze Landstriche in Hierarchieebenen. Allerdings (und gerade hier liegt die Tücke von OpenGeoDB) sind die Suchergebnisse von Google [...]]]></description>
			<content:encoded><![CDATA[<p>Wer in Deutschland, Österreich und der Schweiz vernünftig geocodieren will, kommt in der Regel nicht an der OpenGeoDB vorbei. Google Maps ist da zwar ganz nett, aber OpenGeoDB verbindet Orte nicht nur mit einer Postleitzahl, sondern strukturiert ganze Landstriche in Hierarchieebenen.</p>
<p>Allerdings (und gerade hier liegt die Tücke von OpenGeoDB) sind die Suchergebnisse von Google bzgl. eines Downloads der Datenbank sehr bedenklich. Anstatt sich hier auf Google zu verlassen, benutzen wir die <a href="http://fa-technik.adfc.de/code/opengeodb/" target="_blank">aktuelle Version</a> von OpenGeoDB, die <a href="http://fa-technik.adfc.de/code/opengeodb/" target="_blank">hier</a> zum Download bereitsteht, bzw. verwenden dieses <a href="http://opengeodb.giswiki.org" target="_blank">Wiki</a><a href="http://opengeodb.giswiki.org/"></a>. Alles was Google zu diesem Thema mitzuteilen gedenkt ignorieren wir geflissentlich!</p>
<p>Auf der Download-Seite selbst kann die OpenGeoDB nicht als Komplettpaket heruntergeladen werden, sondern man muss sich „seine Datenbank“ selbst zusammenstellen. Aus diesem Grund können wir auch alle Dateien mit der Endung <em>*.tab</em> von vorneherein ignorieren. Diese enthalten den Datenstamm als <em>.csv-Datei</em>.</p>
<p>Ich gehe jetzt mal davon aus, dass jeder weiß, wie man einen Datenbank-Dump importieren kann. Natürlich nehmen wir als Grundlage MySQL. Außerdem werden wir eine Datenbank für DE erstellen. Datenbanken für CH und AT werden analog erstellt, es lassen sich auch alle Datenbanken kombinieren.</p>
<p>Im ersten Schritt laden wir die Datei <strong>opengeodb-begin.sql</strong> herunter und importieren diese. Die Datei enthält lediglich die Strukturen der Datenbanken und keine Daten. Nachdem nun die Strukturen angelegt worden sind, müssen nun die Daten folgen. Hierzu muss man gemäß des gewünschten Landes die entsprechende Datei herunterladen:</p>
<p><strong>AT.sql</strong> &#8211; Österreich<br />
<strong>BE.sql</strong> &#8211; Belgien<br />
<strong>CH.sql</strong> &#8211; Schweiz<br />
<strong>DE.sql</strong> &#8211; Deutschland<br />
<strong>LI.sql</strong> &#8211; Lichtenstein</p>
<p>Jede dieser Dateien enthält die Orte und die Postleitzahlen der einzelnen Länder. Die Dumps enthalten nur die Daten. Es kann entweder ein einzelner Dump importiert, mehrere oder sogar alle. Natürlich sollte man hier ein wenig darauf Achten, das man nur die Daten importiert, die man benötigt.</p>
<p>Zu guter Letzt werden wiederum in einer separaten Datei die Indizes innerhalb der Datenbank angelegt. Hierzu benötigt man die Datei <strong>opengeodb-end.sql</strong>. Ich empfehle direkt nach Import dieser SQL-Datei alle Tabellen mit einem „<em>OPTIMIZE TABLE</em>“ zu optimieren.</p>
<p>Eigentlich könnte man jetzt vernünftig mit dem System arbeiten, aber auf Wunsch kann man natürlich die bestehende Datenbank noch erweitern. Durch den Import der Datei <strong>changes.sql</strong> besteht die Möglichkeit, die aktuellsten Patches in die Datenbank einzuspielen. Eine sehr sinnvolle Sache, wie ich finde.</p>
<p>Durch Import der Datei <strong>extra.sql</strong> kann man den Datenbestand erweitern. Man kann später zum Beispiel Höhenangaben abfragen, aber auch den Kontinent. Richtig lustig wird die Datenbank allerdings erst, wenn man eine der folgenden Dateien importiert:</p>
<p><strong>AThier.sql</strong> Hierarchie-Daten für Österreich<br />
<strong>BEhier.sql</strong> Hierarchie-Daten für Belgien<br />
<strong>CHhier.sql</strong> Hierarchie-Daten für die Schweiz<br />
<strong>DEhier.sql</strong> Hierarchie-Daten für Deutschland<br />
<strong>LIhier.sql</strong> Hierarchie-Daten für Liechtenstein</p>
<p>Auch hier ist wieder darauf zu achten, dass man nur die Daten importiert, die man auch wirklich benötigt. Durch den Import dieser Dumps ordnet man einen Ort in eine Hierarchie ein. Was heißt das? Am Beispiel von Deutschland kann man somit bei einem Ort oder einer Postleitzahl feststellen, ob es sich nur um einen Ortsteil handelt (dies ist bei Postleitzahlen in der Regel immer der Fall). Entsprechend kann man dann mit dem Dump ermitteln, zu welcher Ortschaft der Ortsteil gehört. Die Ortschaft kann wiederum einem Landkreis zugeordnet werden, dieser einem Regierungsbezirk und letztendlich einem Bundesland.</p>
<p>Die Hierarchie kann viele Einsatzmöglichkeiten finden, so zum Beispiel für eine einfache Umkreissuche. Eigentlich ist der Import der Daten recht einfach, wenn man weiß, wofür die einzelnen Dateien gut sind. Arbeitet die Liste einfach in der hier vorliegenden Reihenfolge ab, und entscheidet genau, welche Daten ihr braucht und welche nicht, dann kann eigentlich nichts schief gehen. Einem finalen „<em>OPTIMIZE TABLE</em>“ tut an dieser Stelle übrigens niemandem weh.</p>




	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F&amp;title=Tutorial%20OpenGeoDB%20%E2%80%93%20Die%20Installation%20der%20Datenbank&amp;notes=Wer%20in%20Deutschland%2C%20%C3%96sterreich%20und%20der%20Schweiz%20vern%C3%BCnftig%20geocodieren%20will%2C%20kommt%20in%20der%20Regel%20nicht%20an%20der%20OpenGeoDB%20vorbei.%20Google%20Maps%20ist%20da%20zwar%20ganz%20nett%2C%20aber%20OpenGeoDB%20verbindet%20Orte%20nicht%20nur%20mit%20einer%20Postleitzahl%2C%20sondern%20strukturiert%20ga" title="del.icio.us"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F&amp;title=Tutorial%20OpenGeoDB%20%E2%80%93%20Die%20Installation%20der%20Datenbank&amp;bodytext=Wer%20in%20Deutschland%2C%20%C3%96sterreich%20und%20der%20Schweiz%20vern%C3%BCnftig%20geocodieren%20will%2C%20kommt%20in%20der%20Regel%20nicht%20an%20der%20OpenGeoDB%20vorbei.%20Google%20Maps%20ist%20da%20zwar%20ganz%20nett%2C%20aber%20OpenGeoDB%20verbindet%20Orte%20nicht%20nur%20mit%20einer%20Postleitzahl%2C%20sondern%20strukturiert%20ga" title="Digg"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F&amp;title=Tutorial%20OpenGeoDB%20%E2%80%93%20Die%20Installation%20der%20Datenbank&amp;annotation=Wer%20in%20Deutschland%2C%20%C3%96sterreich%20und%20der%20Schweiz%20vern%C3%BCnftig%20geocodieren%20will%2C%20kommt%20in%20der%20Regel%20nicht%20an%20der%20OpenGeoDB%20vorbei.%20Google%20Maps%20ist%20da%20zwar%20ganz%20nett%2C%20aber%20OpenGeoDB%20verbindet%20Orte%20nicht%20nur%20mit%20einer%20Postleitzahl%2C%20sondern%20strukturiert%20ga" title="Google Bookmarks"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F&amp;bm_description=Tutorial%20OpenGeoDB%20%E2%80%93%20Die%20Installation%20der%20Datenbank&amp;plugin=soc" title="MisterWong.DE"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F&amp;t=Tutorial%20OpenGeoDB%20%E2%80%93%20Die%20Installation%20der%20Datenbank" title="Facebook"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Tutorial%20OpenGeoDB%20%E2%80%93%20Die%20Installation%20der%20Datenbank%20-%20http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F" title="Twitter"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F" title="Wikio"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fwww.guido-muehlwitz.de%2F2009%2F10%2Ftutorial-opengeodb-die-installation-der-datenbank%2F&amp;title=Tutorial%20OpenGeoDB%20%E2%80%93%20Die%20Installation%20der%20Datenbank" title="Webnews.de"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.guido-muehlwitz.de/feed/" title="RSS"><img src="http://www.guido-muehlwitz.de/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>


<br/><br/><p><a class="FlattrButton" style="display:none;" href="http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/" title="Tutorial OpenGeoDB – Die Installation der Datenbank" rev="flattr;uid:16555;language:de_DE;category:text;tags:OpenGeoDB,Tutorial;button:compact;">Wer in Deutschland, Österreich und der Schweiz vernünftig geocodieren will, kommt in der Regel nicht an der OpenGeoDB vorbei. Google Maps ist da zwar ganz nett, aber OpenGeoDB verbindet Orte nicht nur mit einer Postleitzahl, sondern strukturiert ganze Landstriche in Hierarchieebenen.

Allerdings (und gerade hier liegt die Tücke von OpenGeoDB) sind die Suchergebnisse von Google bzgl. eines Downloads der Datenbank sehr bedenklich. Anstatt sich hier auf Google zu verlassen, benutzen wir die aktuelle Version von OpenGeoDB, die hier zum Download bereitsteht, bzw. verwenden dieses Wiki. Alles was Google zu diesem Thema mitzuteilen gedenkt ignorieren wir geflissentlich!

Auf der Download-Seite selbst kann die OpenGeoDB nicht als Komplettpaket heruntergeladen werden, sondern man muss sich „seine Datenbank“ selbst zusammenstellen. Aus diesem Grund können wir auch alle Dateien mit der Endung *.tab von vorneherein ignorieren. Diese enthalten den Datenstamm als .csv-Datei.

Ich gehe jetzt mal davon aus, das</a></p>
<p><strong>Ähnliche Beiträge:</strong></p>
<p><ul><li><a href="http://www.guido-muehlwitz.de/2009/10/geocodieren-von-postleitzahlen-mit-der-opengeodb/" rel="bookmark" title="27. Oktober 2009">Geocodieren von Postleitzahlen mit der OpenGeoDB</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-wiederholungen/" rel="bookmark" title="11. August 2010">Tutorial Regular Expressions: Wiederholungen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-die-position-einer-zeichenkette/" rel="bookmark" title="4. August 2010">Tutorial Regular Expressions: Die Position einer Zeichenkette</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/08/tutorial-regular-expressions-nach-einem-beliebigen-zeichen-suchen/" rel="bookmark" title="2. August 2010">Tutorial Regular Expressions: Nach einem beliebigen Zeichen suchen</a></li>

<li><a href="http://www.guido-muehlwitz.de/2010/07/tutorial-regular-expressions-nach-zeichen-suchen/" rel="bookmark" title="29. Juli 2010">Tutorial Regular Expressions: Nach Zeichen suchen</a></li>
</ul><!-- Similar Posts took 9.133 ms --><p/>
<hr />
<p><small>75490d5d-7a17-4846-b1e9-58da6ccbbad1 |
<a href="http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/">Permalink</a> |
<a href="http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/#comments">5 Kommentare</a>
<br/>
Verschlagwortung: <a href="http://www.guido-muehlwitz.de/tag/opengeodb/" rel="tag">OpenGeoDB</a>, <a href="http://www.guido-muehlwitz.de/tag/tutorial/" rel="tag">Tutorial</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.guido-muehlwitz.de/2009/10/tutorial-opengeodb-die-installation-der-datenbank/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
