PHP: Output-Buffer ist schachtelbar

Bei der Entwicklung des WordPress-Caching-Plugins Staticly kam die Frage auf, wie man die Output-Buffer ob_start und Co. nutzen könne, während Plugins und andere Code-Teile selbst davon Gebrauch machen. Und tatsächlich macht es PHP dem Nutzer recht einfach, wie das Manual bestätigt:

Output buffers are stackable, that is, you may call ob_start() while another ob_start() is active.

Die Ausgabe-Puffer sind als Stack realisiert, so dass man sie schachteln kann:

ob_start();
  ob_start();
    echo "Hello world!";
  ob_end_flush();
ob_end_flush();

Schön, wenn es auch mal einfach geht.

Adaptive Bilder im responsiven Webdesign

Während die Gestaltung für unterschiedlich große Ausgabegeräte mit CSS mittlerweile ganz gut möglich ist, hat responsives Webdesign ein großes Problem: Bilder. Schon für Entwickler ist es nervig, unzählige Größen bereitzustellen. Vollautomatisierte Lösungen, die auch für technisch unversierte Nutzer funktionieren, sind noch um einiges komplizierter.

Eine schöner Ansatz, der zumindest einen großen Teil dieses Gebietes abdeckt, bietet Adaptive Images. Die Software habe ich nicht getestet und sie dürfte für viele ohnehin nicht nutzbar sein, da sie PHP und einen Apache Webserver erfordert. Die Idee ist aber gut und einfach umsetzbar. weiterlesen

PostgreSQL-Byte-Array mit PHP in Datei schreiben

Will man Binärdaten, die in einer PostgreSQL-Tabelle als Typ bytea hinterlegt sind, direkt ausgeben oder in eine Datei schreiben, muss die Rückgabe zunächst demaskiert werden. Andernfalls wird sich euer Bildbetrachter weigern, eine gespeicherte Grafik zu öffnen. Grund dafür ist, dass die Daten bei der Auswahl mit SELECT als Oktalzahlen zurückgegeben werden, die mit einem Backslash beginnen. Die Funktion pg_unescape_bytea entfernt diese.

weiterlesen

PHP-Coding-Guidelines: PHP Framework Interop Group

Neben vielen weiteren hat PHP ein in meinen Augen besonders nerviges Manko: Es stellt keine Guidelines dafür bereit, wie der geschriebene Code formatiert werden soll. Für einen Überblick habe ich vor längerer Zeit schon einmal die Vorgaben großer Projekte verglichen. Viel interessanter scheint jedoch der Ansatz der PHP Framework Interop Group zu sein, die ein ganzes Bündel von Empfehlungen für Webentwickler geschnürt hat. Viele bekannte Projekte wie Zend Framework, PEAR, phpBB, Joomla und Drupal sind daran beteiligt.  weiterlesen

Reguläre Ausdrücke online testen: Reghex

Vor einigen Wochen stolperten wir während einer Vorlesung über das Problem, ein schnelles und einfaches Testwerkzeug für reguläre Ausdrücke unter Linux zu finden. Schnell wurde uns klar, dass man einen solchen Dienst sehr gut als Webanwendung realisieren könnte. Als wir uns dann im Zuge einer anderen Vorlesung mit einem Javascriptprojekt beschäftigen sollten, war „Reghex“ geboren… weiterlesen

Feedback-System Tweedback für Präsentationen

Seit ein paar Tagen haben Georg und ich die Arbeit an unserem Studienprojekt „Tweedback“ abgeschlossen. Ziel war es, eine Anwendung zu schreiben, mit welcher der Zuhörer während einer Vorlesung oder eines Vortrags Rückmeldungen an den Dozenten schicken kann. Dies sollte plattformunabhängig, ohne größere Ablenkung für den Vortragenden und in Echtzeit umgesetzt werden. Die nun abgeschlossene Umsetzung, deren Name eine Mischung aus to tweet (zwitschern) und Feedback ist, setzt diese Anforderungen um und konzentriert sich vor allem auf eine intuitive graphische Oberfläche, die im Browser läuft. weiterlesen

Kleine PHP-Helfer für CSS-Animations

CSS-Animationen sind eine leicht verständliche Art, aufwändige und hübsche Animationen zu erstellen. Das Hauptproblem dabei sind vor allem die ständig benötigten Browser-Präfixe, die aufgrund der fehlenden Standardisierung noch immer nötig sind. Ich habe für diesen Zweck zwei PHP-Funktionen geschrieben, welche die verschiedenen Varianten automatisch erstellen. weiterlesen