<?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>TheGeek.de &#187; regex</title>
	<atom:link href="http://thegeek.de/t/regex/feed" rel="self" type="application/rss+xml" />
	<link>http://thegeek.de</link>
	<description>WordPress, PHP, JavaScript, Web 2.0, Gaming, Motorräder, Fotografie, Piratenpartei, Privates</description>
	<lastBuildDate>Tue, 07 Feb 2012 13:21:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Per RegEx geraden und ungeraden Tabellen-Zeilen ensprechende CSS-Klassen zuweisen</title>
		<link>http://thegeek.de/per-regex-geraden-und-ungeraden-tabellen-zeilen-ensprechende-css-klassen-zuweisen</link>
		<comments>http://thegeek.de/per-regex-geraden-und-ungeraden-tabellen-zeilen-ensprechende-css-klassen-zuweisen#comments</comments>
		<pubDate>Wed, 23 Dec 2009 12:12:04 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[tabellen]]></category>

		<guid isPermaLink="false">http://thegeek.de/?p=426</guid>
		<description><![CDATA[Wer vor dem Problem steht, dass ein Kunde bei einer Web-Anwendung unbedingt Tabellen-Zeilen mit wechselnden Farben je gerader und ungerader Zeile wünscht und dafür ca. 200 Kilobyte Quellcode überarbeiten müsste, der kann es sich ein wenig vereinfachen, wenn folgender Code vor der Ausgabe auf den auszugebenden Inhalt angewendet wird. Das Skript durchsucht mit zwei kleinen [...]]]></description>
			<content:encoded><![CDATA[<p>Wer vor dem Problem steht, dass ein Kunde bei einer Web-Anwendung unbedingt Tabellen-Zeilen mit wechselnden Farben je gerader und ungerader Zeile wünscht und dafür ca. 200 Kilobyte Quellcode überarbeiten müsste, der kann es sich ein wenig vereinfachen, wenn folgender Code vor der Ausgabe auf den auszugebenden Inhalt angewendet wird.<span id="more-426"></span></p>
<p>Das Skript durchsucht mit zwei kleinen Regular Expressions den Inhalt nach Tabellen und weist dann den Tabellen-Zeilen entsprechende Klassen (even/odd) zu. So können alle Tabellen per CSS formatiert werden. Klar leidet darunter die Performance etwas, aber sicherlich nicht viel mehr, als wenn ich in jeder Schleife in der eine Tabelle aufgebaut wird ein Zähler mitlaufen lasse und eine Bedingsabfrage mache.</p>
<pre class="brush:php">
	// Convert table rows to even/odd class
	preg_match_all( "/&lt;table.*&gt;(.*)&lt;\/table&gt;/siU", $html, $matches );
	if( $matches )
	{
		foreach( $matches[ 1 ] AS $tbody )
		{
			$new_rows = '';
			if( preg_match_all( "/&lt;tr.*&gt;.+&lt;\/tr&gt;/siU", $tbody, $tbmatches ) )
			{
				$i = 0;
				foreach( $tbmatches[ 0 ] AS $tr )
				{
					// Ignore rows containing th cells
					if( strpos( $tr, '&lt;th' ) === false )
					{
						if( $i % 2 == 0 )
							$new_rows .= str_replace( '&lt;tr', '&lt;tr class="even"', $tr );
						else
							$new_rows .= str_replace( '&lt;tr', '&lt;tr class="odd"', $tr );
						$i++;
					}
					else	$new_rows .= $tr;
				}
				$html = str_replace( $tbody, $new_rows, $html );
			}
		}
	}
</pre>
<p>Im Grunde ganz einfach: Die erste RegEx sucht alle vorhanden Tabellen und deren Inhalt. Danach werden die Zeilen des Inhalts ebenfalls per RegEx ermittelt und per Zeichenersetzung angepasst.</p>
<p>Vielleicht hilft das ja Jemandem irgendwann mal&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://thegeek.de/per-regex-geraden-und-ungeraden-tabellen-zeilen-ensprechende-css-klassen-zuweisen/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress und lighttpd, Permalinks mit URL rewriting</title>
		<link>http://thegeek.de/wordpress-und-lighttpd-permalinks-mit-url-rewriting</link>
		<comments>http://thegeek.de/wordpress-und-lighttpd-permalinks-mit-url-rewriting#comments</comments>
		<pubDate>Tue, 24 Nov 2009 11:54:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://thegeek.de/?p=355</guid>
		<description><![CDATA[Ich nutze schon seit langem keinen Apache Webserver mehr, sondern lighttpd, da dieser schlank und performant ist. Einziger Nachteil ist in meinen Augen die fehlende Kompatibilität zu &#8220;.htaccess&#8221; Dateien, die bei vielen Open-Source Web-Anwendungen oft bereits mitgeliefert werden, um z.B. die URL&#8217;s für Suchmaschinen zu optimieren. Bei WordPress wird diese Funktion über die sogenannte &#8220;Permalink [...]]]></description>
			<content:encoded><![CDATA[<p>Ich nutze schon seit langem keinen Apache Webserver mehr, sondern <a href="http://www.lighttpd.net/">lighttpd</a>, da dieser schlank und performant ist. Einziger Nachteil ist in meinen Augen die fehlende Kompatibilität zu &#8220;.htaccess&#8221; Dateien, die bei vielen Open-Source Web-Anwendungen oft bereits mitgeliefert werden, um z.B. die URL&#8217;s für Suchmaschinen zu optimieren. Bei WordPress wird diese Funktion über die sogenannte &#8220;Permalink Struktur&#8221; realisiert. Einfach erklärt: Mittels URL rewrite wird eine eigentlich nicht existente URL trotzdem an die Web-Anwendung übergeben, ohne einen 404 Status Header zu senden. WordPress kann den passenden Inhalt dann anhand der definierten Permalink Struktur laden und anzeigen. Diese Funktionalität wollte ich bei keinem meiner Blogs missen und kann glücklicherweise auch recht einfach für lighttpd umgesetzt werden.<span id="more-355"></span></p>
<p>Lighttpd bietet hierfür die Möglichkeit in einem virtuellen Host eine URL rewrite Regel zu definieren. Im VHost von thegeek.de sieht das z.B. so aus:</p>
<pre class="brush:plain">
# Auszug aus dem thegeek.de VHost
$HTTP["host"] =~ "(^www\.thegeek\.de)|(^thegeek\.de)" {
	url.rewrite =	(
				"^(/gallery/|/wp-.*|/xmlrpc\.php|/robots\.txt|/sitemap\.xml|.*\?album=[0-9]+&#038;gallery=[0-9]+|.*\?p=[0-9]+|.*\?cat=[0-9]+|.*\?feed=|.*\?s=).*$" => "$0",
				"^" => "index.php"
			)
}
</pre>
<p>Die erste Regel greift bei den URL-Parametern des NextGen Gallery Plugins, den WordPress internen Verzeichnissen und Parametern, der Google-Sitemap, der robots.txt, sowie der XML-RPC und Feed Schnittstelle. Trifft die Regel zu, wird die URL auf keinen Fall umgeschrieben und so wie sie ist weitergegeben. Dies ist absolut notwendig, denn sonst würde z.B. &#8220;thegeek.de/wp-admin&#8221; auch umgeleitet und das Backend könnte nicht mehr aufgerufen werden.</p>
<p>Die zweite Regel leitet alle restlichen URL&#8217;s zur Index Datei von WordPress um, welche die URL dann interpretieren kann, um anhand der Permalink Struktur den richtigen Inhalt zu finden.</p>
<p>Im Grunde recht einfach und vorallem: Es funktioniert prima.</p>
<p><a href="http://flattr.com/thing/331574/WordPress-und-lighttpd-Permalinks-mit-URL-rewriting" target="_blank"><br />
<img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://thegeek.de/wordpress-und-lighttpd-permalinks-mit-url-rewriting/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

