PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for April, 2012

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 , ,

Wie viele interne Funktionen hat PHP?

with 5 comments

Tja, das ist nicht so leicht zu beantworten, die Antwort lautet: Kommt drauf an.

  • Zählt man nur die Funktionen in der sogenannten Standard-Extension und der SPL-Extension sind es 526. Das ist also die Anzahl die jede PHP Installation auf jeden Fall bietet.
  • Zählt man auch die Methoden der Klassen mit die mit ausgeliefert werden kommt man zusammen auf 1402. Darin sind jedoch auch viele „doppelte“ Methoden vorhanden die durch Ableitung entstehen.

Doch jede PHP-Installation wird normalerweise mit zusätzlichen Extensions kompiliert bzw. werden weitere geladen, sodass die Anzahl der zur Verfügung stehenden Funktionen deutlich höher ist:

  • Zählt man alle internen Funktionen hier in dieser PHP-Version von Xampp dann sind dies 1605. Darin sind nun auch die Funktionen aller installierten Extensions enthalten, z.B. die mysql_* Funktionen durch die mysqli-Extension oder die xdebug_* Funktionen der xdebug-Extension.
  • Zählt man alle Funktionen und Methoden zusammen kommt man auf stolze 3825 Funktionen und Methoden.

Ich habe für diese Zählungen die folgenden Scripte verwendet, die jeweils alle gefundenen Funktionen und Methoden inklusive Parametern ausgibt, man erhält also eine lange Liste die ungefähr so aussieht:

Weiterlesen »

Written by Michael Kliewe

April 13th, 2012 at 10:01 am