PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for 2012

Unbekannte und nützliche MySQL-Funktionen

with 7 comments

Auf der Suche nach einer schnelleren Möglichkeit Daten aus einer MySQL Tabelle auszulesen bin ich auf die MySQL-Funktion GROUP_CONCAT() gestossen. Wenn man beispielsweise eine kommaseparierte Liste aller Usernamen benötigt würde man normalerweise folgendes tun:

$usernames = array();
$result = mysql_query('SELECT Username FROM users ORDER BY UserId');
while ($row = mysql_fetch_assoc($result)) {
    $usernames[] = $row["Username"];
}
echo join(',', $usernames);

Mit GROUP_CONCAT() kann man sich die Schleife sparen und erhält direkt einen kommaseparierten String (der Trenner kann natürlich geändert werden, siehe übernächstes Beispiel):

Weiterlesen »

Written by Michael Kliewe

Mai 3rd, 2012 at 10:03 am

PHP 5.4: Die neue Funktion header_register_callback()

with 2 comments

Neben den vielen größeren Änderungen und neuen Features in PHP 5.4 gibt es auch eine kleine, aber vielleicht nützliche Funktion, mit der man noch an den HTTP-Headern rumpfuschen kann bevor sie an den Browser geschickt werden: header_register_callback().

Gerade bei älteren Applikationen, bei denen die Header mittels header() an x-beliebigen Stellen manipuliert werden, kann man mittels dieser Funktion an einer zentralen Stelle noch welche hinzufügen, ändern oder entfernen.

Der Callback, der an die Funktion übergeben wird, wird genau dann aufgerufen wenn die Header an den Browser geschickt würden, also bei der ersten Ausgabe des Skripts. Ich kopiere mal als Beispiel schnell den Code aus dem Manual, daran ist ersichtlich was die Funktion machen kann:

Weiterlesen »

Written by Michael Kliewe

April 26th, 2012 at 10:15 am

Posted in PHP

Tagged with , ,

iBuildings Challenge: Mein Sismo Notifier für C2DM

without comments

iBuildings hat wieder eine Challenge veranstaltet, und ich habe wieder mitgemacht. Letztes Jahr galt es eine Vier-Gewinnt-Spieler-KI zu erstellen, diesmal ging es darum einen Notifier für den Continuous Testing Server Sismo von Fabien Potencier zu schreiben, sprich eine Klasse die sich darum kümmert das Ergebnis eines Builds zu veröffentlichen.

Ich habe mich dafür entschieden einen Notifier für Android Apps zu schreiben, der den Commit via Googles Cloud auf ein Android-Handy pushen kann, auf dem dann eine einfache App das Ergebnis anzeigen kann. Noch gibt es keine solche App, wenn ich das richtig gelesen habe ist das nur eine Sache von wenigen Stunden. Die Klasse mit der ich teilgenommen habe gibt es auf GitHub, bin gespannt ob der Pull-Request angenommen wird.

Weiterlesen »

Written by Michael Kliewe

April 20th, 2012 at 10:11 am

Posted in PHP

Tagged with , , , ,

Algorithmus gesucht: Strings in String suchen

with 11 comments

Ich habe eine kleine Aufgabe für euch: Gegeben ist ein String, sowie eine Menge kürzerer Strings die darauf geprüft werden ob sie im Ausgangsstring vorkommen und an welcher Stelle. Normalerweise gibt es dafür die PHP-Funktion strpos(). Nehmen wir an sie steht nicht zur Verfügung. Wie würdet ihr das Problem bestmöglich lösen, es gibt ja ziemlich viele Ansätze und Lösungen? Interessant dabei ist dass es exakt einen String gibt den es zu durchsuchen gilt, und sehr viele (hier im Beispiel 10.000) kürzere Strings die es zu suchen gilt. Je nachdem wie man den Algorithmus baut macht es eventuell Sinn einen Index oder ähnliches aufzubauen, sprich anfangs etwas mehr Rechenarbeit zu leisten damit man später die Suche sehr schnell erledigen kann?

Also die Grundstruktur soll wie folgt aussehen (siehe auch bei GitHub):

Weiterlesen »

Written by Michael Kliewe

April 18th, 2012 at 10:17 am

Posted in PHP

Tagged with , ,

Linkpool Nummer 29

with one comment

Ein paar interessante Links gegen den verregneten Sonntag:

Sehr interessante Serie über die PHP Source-Code-Interna, für PHP Entwickler:

XSS, und wie man htmlspecialchars NICHT benutzt:

Audioaufnahme eines Vortrags von  Lorna Jane Mitchell über OAuth:

CSS3 und HTML5 Features in älteren Browsern mit Polyfills:

Carsten Eilers im PHP Magazin mit einem 9-teiligen Artikel über OAuth:

Der Mayflower Podcast Folge 2 und 3 über QA, CI und oTranCe

Dateien als Download zum Browser senden:

Erschreckende Zahlen von „Webmastern“ und „ihren“ Webseiten nach einem Einbruch:

Wie man aus PHP heraus Musik an einen Icecast/Shoutcast Server streamt mit einer eigenen Extension:

Bericht über einen Besuch beim Facebook Release Engineering Team:

Written by Michael Kliewe

April 15th, 2012 at 1:31 pm

Posted in Allgemein,PHP

Tagged with , ,