PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘PHP’ Category

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

Testdaten generieren mit dem Projekt “Faker”

with 4 comments

Auf der Suche nach einem Namensgenerator bin ich auf das Projekt “Faker” von Francois Zaninotto gestossen. Basierend auf den Fakern aus der Perl- und Ruby-Welt kann man damit nicht nur Namen generieren, sondern auch Straßen, Ortsnamen, Telefonnummern, Zahlen, Firmennamen, E-Mail-Adressen, IP-Adressen, URLs, Datumsangaben, und das ganze lokalisiert. Französische Daten sind also andere als italienische oder österreichische.

Sinnvoll sind solche Daten für die Testumgebung, um keine echten Daten nehmen zu müssen bzw. sich keine hunderte eigene Daten auszudenken, oder für Unit-Tests. Die generierten Daten kann man dann beispielsweise nutzen um eine Datenbank zu füllen, Objekte zu erstellen, XML-Dokumente zu generieren oder JSON-Requests abzufeuern. Die Readme des Projekts ist umfangreich und zeigt sehr schön was alles möglich ist.

Ein schönes und nützliches Projekt wie ich finde. Von Christoph Schaefer gibt es auch einen Fork mit einem de_DE Provider, leider ist die Vornamenliste noch etwas kurz, aber man kann gut darauf aufbauen.

Welche Daten nutzt ihr für Testumgebungen, wie generiert ihr eure Testdaten?

Written by Michael Kliewe

April 10th, 2012 at 10:14 am

Posted in PHP

Tagged with , , ,