<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title><![CDATA[Christophs Datenbank (PHP)]]></title>
    <link>http://codebase.christoph-mewes.de/</link>
    <description><![CDATA[Kleine Nützlichkeiten aus dem Web-Alltag]]></description>
    <language>de-DE</language>
    <pubDate>Tue, 10 Apr 2007 04:00:00 GMT</pubDate>
    <lastBuildDate>Wed, 08 Sep 2010 02:34:14 +0200</lastBuildDate>
    <atom:link href="http://codebase.christoph-mewes.de/PHP/?feed" rel="self" type="application/rss+xml" />
    <item>
      <title><![CDATA[Lokale Suchalgorithmen: Ausglühen, Schwellenwert und Zufallsanstieg (Scripts)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Scripts/Lokale_Suchalgorithmen__Ausgluehen__Schwellenwert_und_Zufallsanstieg.html</link>
      <description><![CDATA[<p>Berchnet die besten lokalen Lösungen für das TSP-Problem. Das Strecken-Array gibt die Kosten für den Weg zwischen zwei Knoten an. 6 &#8220;Städte&#8221; werden verwendet.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Scripts/Lokale_Suchalgorithmen__Ausgluehen__Schwellenwert_und_Zufallsanstieg.html</guid>
      <pubDate>Wed, 29 Apr 2009 14:19:19 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Serialiserungstest (Funktionen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Funktionen/Serialiserungstest.html</link>
      <description><![CDATA[<p>Diese Funktion prüft, ob ein ihr übergebener String mit serialize() behandelt wurde oder nicht. Die erste Variante gibt im Falle eines &#8220;Ja&#8221; den deserialisierten Wert zurück, die zweite einfach true. Auf diese Weise kann man problemlos prüfen, ob Daten bereits vorbereitet wurden und falls nicht, diese mit serialize() behandeln.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Funktionen/Serialiserungstest.html</guid>
      <pubDate>Thu, 22 Jan 2009 18:26:55 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Datenbank für PHPUnit exportieren (Scripts)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Scripts/Datenbank_fuer_PHPUnit_exportieren.html</link>
      <description><![CDATA[<p>Um beim Unit-Testing ein Fixture in der Datenbank vorzugeben (also einen Fixpunkt), kann man in PHPUnit ein <a href="http://www.phpunit.de/manual/current/en/database.html#database.datasets.xml">XMLDataset</a> verwenden. Dieses kleine Script erzeugt anhand einer XML-Konfigurationsdatei einen Export einer Datenbank inkl. aller ausgewählten (bzw. aller vorhandenen) Tabellen.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Scripts/Datenbank_fuer_PHPUnit_exportieren.html</guid>
      <pubDate>Thu, 22 Jan 2009 00:49:55 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Humane Funktionen (Funktionen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Funktionen/Humane_Funktionen.html</link>
      <description><![CDATA[]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Funktionen/Humane_Funktionen.html</guid>
      <pubDate>Sat, 03 Jan 2009 20:37:02 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Redaxo-SQL-Klasse (Klassen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Klassen/Redaxo-SQL-Klasse.html</link>
      <description><![CDATA[<p>Diese Klasse erleichtert etwas den Umgang mit Datenbanken in Redaxo. Es stehen Hilfsmethoden wie fetch(), iquery() und count() zur Verfügung. Außerdem kann das WV_SQL-Objekt als Iterator verwendet werden.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Klassen/Redaxo-SQL-Klasse.html</guid>
      <pubDate>Tue, 16 Dec 2008 22:36:23 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Array-Funktionen (Funktionen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Funktionen/Array-Funktionen.html</link>
      <description><![CDATA[<p>Eine kleine Sammlung netter Funktionen, die es leider nicht in die Standard-Distribution von <span class="caps">PHP</span> geschafft haben.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Funktionen/Array-Funktionen.html</guid>
      <pubDate>Tue, 16 Dec 2008 16:07:27 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[eMail auf Gültigkeit prüfen (Funktionen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Funktionen/eMail_auf_Gueltigkeit_pruefen.html</link>
      <description><![CDATA[<p>Diese Funktion prüft eine eMail-Adresse auf syntaktische Gültigkeit gemäß <span class="caps">RFC</span> 2822. Der Code stammt von <a href="http://code.iamcal.com/php/rfc822/">Cal Henderson</a> und steht unter <a href="http://creativecommons.org/licenses/by-sa/2.5/">CC-Lizenz</a>.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Funktionen/eMail_auf_Gueltigkeit_pruefen.html</guid>
      <pubDate>Mon, 08 Dec 2008 13:23:02 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[CSS komprimieren (Funktionen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Funktionen/CSS_komprimieren.html</link>
      <description><![CDATA[<p>Diese Funktion komprimiert eine CSS-Datei. Alle unnötigen Zeichen werden entfernt.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Funktionen/CSS_komprimieren.html</guid>
      <pubDate>Fri, 05 Dec 2008 02:45:36 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[DIV-Boxen für Schatten erzeugen (Klassen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Klassen/DIV-Boxen_fuer_Schatten_erzeugen.html</link>
      <description><![CDATA[<p>Diese Klasse stellt zwei Methoden bereit, die automatisch eine Reihe von <code>div</code>s erzeugen. Diese werden überlicherweise um ein anderes Element gelegt und dann gestyled, um zum Beispiel abgerundete Ecken oder Schatten zu erzeugen.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Klassen/DIV-Boxen_fuer_Schatten_erzeugen.html</guid>
      <pubDate>Tue, 25 Nov 2008 17:48:33 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[HTML-Code kürzen (Funktionen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Funktionen/HTML-Code_kuerzen.html</link>
      <description><![CDATA[<p>Diese Funktion schneidet HTML-Code nach <code>n</code> Zeichen ab. Dabei werden Entities als jeweils 1 Zeichen berechnet und nicht zerschnitten, ebenso zählen HTML-Tags nicht zur Länge und werden ebenfalls nicht zerstört. Auf Wunsch kann die Klasse nach dem Abschneiden die nun offenen Tags auch wieder schließen.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Funktionen/HTML-Code_kuerzen.html</guid>
      <pubDate>Tue, 25 Nov 2008 17:43:16 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Rekursives chmod (Funktionen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Funktionen/Rekursives_chmod.html</link>
      <description><![CDATA[<p>Diese Funktion wandert rekursiv durch ein Verzeichnis durch und ändert von allen Dateien und Verzeichnissen die Zugriffsrechte. Wenn <code>true</code> zurückgegeben wird, wurde der Modus überall geändert. Schlägt eine Datei fehl, wird weitergearbeitet, aber am Ende <code>false</code> zurückgegeben.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Funktionen/Rekursives_chmod.html</guid>
      <pubDate>Tue, 25 Nov 2008 17:40:44 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Server anpingen (Scripts)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Scripts/Server_anpingen.html</link>
      <description><![CDATA[<p>Dieses Script pingt einen Server an und prüft, ob dieser Antwortet. Die Antwort wird dann für 5 Minuten gecached. In Abhängigkeit vom Status wird ein Bild an den Client gesendet.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Scripts/Server_anpingen.html</guid>
      <pubDate>Tue, 25 Nov 2008 16:48:12 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Größer und Größergleich (Benchmarks)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Benchmarks/Groesser_und_Groessergleich.html</link>
      <description><![CDATA[<p>Dieser Benchmark testet, ob es schneller ist, <code>$a &#62;= 4</code> oder <code>$a &#62; 3</code> zu schreiben.</p>

<pre>
<code>
Duration for &#39;&#62;=&#39;: 1.3217248916626s
Duration for &#39;&#62;&#39; : 1.3271579742432s
</code>
</pre>

	<p>Ergebnis: Es ist egal. Nehmt, was mehr Sinn macht und schneller einleuchtet.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Benchmarks/Groesser_und_Groessergleich.html</guid>
      <pubDate>Tue, 25 Nov 2008 02:30:12 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Arrayzugriff bei Objekten (Benchmarks)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Benchmarks/Arrayzugriff_bei_Objekten.html</link>
      <description><![CDATA[<p>Dieser Benchmark prüft N mal, ob der Zugriff auf ein von ArrayObjekt abgeleitetes Objekt schneller ist, wenn man die Methoden (offsetGet bzw. offsetSet) oder die Arraysyntax nutzt. Das Ergebnis beim Durchlauf mit <span class="caps">PHP</span> 5.2.6 auf Vista x64:</p>

<pre>
<code>
Duration for array access (set) : 0.53046822547913 s
Duration for method access (set): 0.58158802986145 s
Duration for array access (get) : 0.43402695655823 s
Duration for method access (get): 0.50619602203369 s
</code>
</pre>

	<p>Es zeigt sich also, dass der Arrayzugriff immer schneller ist. Und das ist auch gut so, darum implementieren wir ja den ganzen Kram ;-)</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Benchmarks/Arrayzugriff_bei_Objekten.html</guid>
      <pubDate>Tue, 25 Nov 2008 02:09:16 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Arrayzugriff auf Objekte (Klassen)]]></title>
      <link>http://codebase.christoph-mewes.de/PHP/Klassen/Arrayzugriff_auf_Objekte.html</link>
      <description><![CDATA[<p>Mit der <span class="caps">PHP</span> <span class="caps">SPL</span> kann man ein Objekt von ArrayObject ableiten und dann fröhlich das Objekt als Array benutzen. Dazu sollte man mindestens <code>offsetGet</code> und <code>offsetSet</code> überschreiben. Weitere Methoden sind auf <a href="http://de.php.net/manual/de/class.arrayobject.php"><span class="caps">PHP</span>.net</a> definiert.</p>]]></description>
      <guid isPermaLink="true">http://codebase.christoph-mewes.de/PHP/Klassen/Arrayzugriff_auf_Objekte.html</guid>
      <pubDate>Mon, 24 Nov 2008 12:05:06 +0100</pubDate>
    </item>
  </channel>
</rss>