In der folgenden Datei muss die protokollierung eingefügt werden: /cake/wp-includes/model/datasources/dbo_source.php Dort finden Sie die Funktion „execute($sql)“. Diese müssen Sie (wie im folgenden Beispiel gezeigt) erweitern: function execute($sql) { $handle = fopen(@“C:\log.txt“, „a“); fwrite($handle, $sql); fwrite($handle, „\n—–\n“); fclose($handle); $t = getMicrotime(); […] In diesem Beispiel werden alle Datenbankzugriffe der cakePHP Anwendung in der Datei „C:\log.txt“ protokolliert. Hinweis: Diese Ergänzung sollte nur zu Debuggingzwecken und nur temporär eingesetzt werden, denn Sie kann die Performance einer Anwendung verschlechtern. Das liegt dan den Schreibzugriffen auf die Festplatte – diese Zugriffe benötigen (im Vergleich zu anderen Speichermedien) viel Zeit. Natürlich können Sie die Logeinträge noch um weitere Informationen (z.Bsp. Zeitstempel o.ä.) ergänzen.
MehrMonat: Januar 2009
PHP: Array kürzen & bearbeiten
Mit dem Befehl „array_slice()“ können Arrays verkürzt werden. Dabei kann durch die Parameter festgelegt werden, ob das Array am Anfang oder am Ende oder am Anfang und Ende gekürzt wird: Die Beispiele arbeiten alle mit dem folgenden Grundarray: $alt = array(„A“,“B“,“C“,“D“,“E“,“F“,“G“,“H“,“I“); Array am Anfang kürzen Befehl: $neu = array_slice($alt, 2); Ergebnis: $alt : „A“,“B“,“C“,“D“,“E“,“F“,“G“,“H“,“I“ $neu : „C“,“D“,“E“,“F“,“G“,“H“,“I“ Array am Ende kürzen Befehl: $neu = array_slice($alt, 0, count($alt) – 3); Ergebnis: $alt : „A“,“B“,“C“,“D“,“E“,“F“,“G“,“H“,“I“ $neu : „A“,“B“,“C“,“D“,“E“,“F“ Anfang und Ende kürzen Befehl: $neu = array_slice($alt, 4, count($alt) – 3 – 4); Ergebnis: $alt : „A“,“B“,“C“,“D“,“E“,“F“,“G“,“H“,“I“ $neu : „E“,“F“ Info: Der Befehl kopiert ab Array-Position 4 die folgenden 2 Elemente: Die Länge von $alt ist: count($alt) = 9 Dadurch ergibt sich: 9 – 3 – 4 = 2
MehrPHP: Vergleichen von ähnlich klingenden (phonetisch gleichen) Wörtern
Die Namen „Maier“, „Mayer“, „Meier“, „Mayr“ und „Meyer“ klingen gleich bzw. sehr ähnlich. Um solche Wörter zu vergleichen und Ähnlichkeiten feststellen zu können, nutzen Sie die Funktion „soundex()“: echo soundex(„Maier“); Für jede der Schreibweisen erhalten Sie den Wert „M600“ – und dadurch können Sie zur Laufzeit die phonetische Ähnlichkeit von Wörtern berechnen. Zur Kontrolle können Sie meinen Vornamen („Malte“) testen: echo soundex(„Malte“); Das Ergebnis: „M430“ – also nicht sehr weit weg von „Meier“, aber eben doch deutlich zu unterscheiden.
MehrcakePHP: Timeout setzen / Zeitlimit erhöhen
Um in cakePHP (PHP) die maximal verfügbare Ausführungszeit eines Scripts zu verändern, nutzen Sie set_time_limit(600); Dieser Befehl setzt die max. Laufzeit des Scriptes auf 10 Minuten (= 600 Sekunden). Diesen Befehl können Sie z.Bsp. zur Behebung der folgenden Meldung nutzen: Fatal error: Maximum execution time of 60 seconds exceeded in /test.php on line 5
MehrcakePHP: Keinen View nutzen
Wenn nur eine Funktion ausgeführt werden soll, ohne dass anschließend ein View angezeigt wird setzen Sie in der entsprechenden Funktion einfach die folgenden beiden Variablen: $autoLayout = false; $autoRender = false; Damit können Sie natürlich auch die Fehlermeldung „Missing View …“ unterdrücken.
MehrText mit Tags (Platzhaltern) formatieren
Sie möchten in einem Text definierte Bereiche (Tags) durch HTML Code oder andere Formatierungen ersetzen lassen und dabei selbst die Sequenzen (Namen, Format, …) bestimmen ? Der folgende Codeschnipsel kann Ihnen die Lösung oder eine Vorlage bieten: function FormatText($text) { // Definition der eigenen Tags (Formatierungsbefehle) $tags = array( ‚bold‘ => ‚/\[b\](.+)\[\/b\]/is‘, ‚center‘ => ‚/\[center\](.+)\[\/center\]/is‘, ‚quote‘ => ‚/\[quote\](.+)\[\/quote\]/is‘, ‚url‘ => ‚/\[url](.+)\[\/url\]/isU‘, ‚urltext‘ => ‚/\[url=(.+)\](.+)\[\/url\]/isU‘, ‚email‘ => ‚/\[email\](.+)\[\/email\]/isU‘, ‚img‘ => ‚/\[img\](.+)\[\/img\]/isU‘ ); // Definition der HTML Tags $replace = array( ‚bold‘ => ‚<span style=“font-weight: bold“>$1</span>‘, ‚center‘ => ‚<center>$1</center>‘, ‚quote‘ => ‚<blockquote>$1</blockquote>‘, ‚url‘ => ‚<a href=“$1″ border=“0″>$1</a>‘, ‚urltext‘ => ‚<a href=“$1″ border=“0″>$2</a>‘, ‚email‘ => ‚<a href=“mailto:$1″>$1</a>‘, ‚img‘ => ‚<img src=“$1″>‘ ); // Ersetzen der entsprechenden Passagen durch die HTML Tags return preg_replace($tags, $replace, $text); } Der Beispielcode in der Praxis: Ihr Text mit den Formatierungstags: $text = „Meine bevorzugte [b]Hilfeseite[/b] heißt [url]http://www.YourHelpCenter.de[/url]“; Wird mit dem folgenden PHP Befehl umgewandelt: $html = FormatText($text); Und so sieht das Ergebnis (der String in $html) aus: Meine bevorzugte Hilfeseite heißt http://www.YourHelpCenter.de Eine Übersicht der o.a. Formatierungen gibt Ihnen der folgende Beispielcode. natürlich lassen sich die Tags auch verschachteln oder kombinieren. $demo = „[b]Fett[/b] [center]Zentriert[/center] [quote]Zitat[/quote] [url]http://www.yourhelpcenter.de/category/cakephp/[/url] [url=http://www.yourhelpcenter.de]Hier finden Sie kostenlose Hilfe und Tipps[/url] [email]info@yourhelpcenter.de[/email] [img]http://www.google.de/intl/de_de/images/logo.gif[/img]“; echo
MehrEclipse: Java Heap Error beheben (lösen)
Wenn Sie unter Eclipse größere Dateneien in ein Projekt laden (z.Bsp. via SVN), dann kennen Sie ggf. den „Java Heap Error“. Um das Problem zu beheben, erhöhen Sie die Werte in Ihrer „eclipse.ini“ wie im folgenden Beispiel angegeben: -showsplash org.eclipse.platform –launcher.XXMaxPermSize 512m -vmargs -Xms40m -Xmx512m
MehrExcel Spaltenname aus Nummer berechnen (A, B, .., AA, AB, ... ZZ)
Wenn Sie aus einer Nummer den entsprechenden Spaltencode (wie aus der Tabellenkalkulation bekannt) zu berechnen, hilft Ihnen meine folgende PHP-Funktion weiter. A, B C, D, …, Z, AA, AB, AC, …, AZ, BA, BB, BC, … ZZ Sie ist sehr einfach auch auf andere Programmiersprachen anzuwenden. function getExcelColCode($col) { return ((int)(($col-1)/26) > 0 ? chr((int)(($col-1)/26) + 64) : „“) . chr($col – ((int)(($col-1)/26) * 26) + 64); } Oder ein wenig ausführlicher zum Nachvollziehen: private function getExcelColCode($col) { $factor = (int)(($col-1)/26); $chr2 = chr($col – ($factor * 26) + 64); $chr1 = ($factor > 0 ? chr($factor + 64) : „“); return $chr1 . $chr2; }
Mehr