Zum Inhalt springen

„PHP“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
Zeile 16: Zeile 16:
|Website = [http://www.php.net/ www.php.net]
|Website = [http://www.php.net/ www.php.net]
|Beeinflusst_von = [[Perl (Programmiersprache)|Perl]], [[C (Programmiersprache)|C]], [[C++]], [[Java (Programmiersprache)|Java]]
|Beeinflusst_von = [[Perl (Programmiersprache)|Perl]], [[C (Programmiersprache)|C]], [[C++]], [[Java (Programmiersprache)|Java]]
|Paradigma = [[Prozedurale Programmierung|prozedural]]
|Paradigma = [[Imperative Programmierung|imperativ]], [[Objektorientierte Programmierung|objektorientiert]]
}}
}}



Version vom 21. Dezember 2008, 01:18 Uhr

PHP
Datei:PHP Logo.svg
Basisdaten
Paradigmen: imperativ, objektorientiert
Erscheinungsjahr: 1995
Designer: Rasmus Lerdorf
Entwickler: The PHP Group
Aktuelle Version: 5.2.8  (8. Dezember 2008)
Typisierung: schwach, dynamisch
Beeinflusst von: Perl, C, C++, Java
Betriebssystem: plattformunabhängig
Lizenz: PHP License
www.php.net

PHP (rekursives Backronym für „PHP: Hypertext Preprocessor“, ursprünglich „Personal Home Page Tools“) ist eine Skriptsprache mit einer an C angelehnten Syntax, die hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen verwendet wird.[1] PHP ist Open-Source-Software.

PHP zeichnet sich besonders durch die leichte Erlernbarkeit, die breite Datenbankunterstützung und Internet-Protokolleinbindung sowie die Verfügbarkeit zahlreicher, zusätzlicher Funktionsbibliotheken aus. Es existieren beispielsweise Programmbibliotheken, um Bilder und Grafiken zur Einbindung in Webseiten dynamisch zu generieren.

Geschichte

PHP wurde 1995 von Rasmus Lerdorf entwickelt. Der Begriff stand damals noch für Personal Home Page Tools und war ursprünglich als Ersatz für eine Sammlung von Perl-Skripten gedacht, die Lerdorf zur Protokollierung der Zugriffe auf seinen Online-Lebenslauf geschrieben hatte.[2] Bald schuf Lerdorf jedoch eine größere Umsetzung in C. In dieser Programmiersprache wird PHP heute noch entwickelt. Das schließlich veröffentlichte PHP/FI (FI stand für Form Interpreter) war Perl sehr ähnlich, wenn auch viel eingeschränkter, einfacher, und ziemlich inkonsistent.

PHP 3 wurde von Andi Gutmans und Zeev Suraski neu geschrieben, da das inzwischen erschienene PHP/FI 2 ihrer Meinung nach für E-Commerce zu schwach war. Auch die Bedeutung der Abkürzung „PHP“ wurde hierbei geändert. Lerdorf kooperierte mit Gutmans und Suraski, und so wurde die Entwicklung von PHP/FI eingestellt. Obwohl PHP 3 für den professionellen Einsatz noch keine allzu große Funktionsvielfalt bot und einige Schwächen aufwies, brachte es die Verbreitung von PHP bedeutend voran. Die von Gutmans und Suraski gegründete Firma Zend Technologies Ltd. entwickelte in der Folge die Zend Engine 1, die den Kern der PHP-4-Standardimplementierung bildet. Mit PHP 4 wurde die Ausführungsgeschwindigkeit komplexer Applikationen und die Sicherheit bei Verwendung globaler Variablen verbessert. Eingeführt wurden die Unterstützung für viele weitere Webserver, das Sessionmanagement, die Ausgabepufferung sowie viele neue Sprachkonstrukte.

Da das World Wide Web Ende der 1990er-Jahre stark wuchs, bestand großer Bedarf an Skriptsprachen, mit denen sich dynamische Webseiten realisieren lassen. PHP wurde für die Webentwicklung mit der Zeit populärer als der vorherige De-facto-Standard Perl, weil es durch seine Spezialisierung als einfacher erlernbar gilt.

Wichtige Versionen

Legende: Alte Version Ältere Version; noch unterstützt Aktuelle Version Aktuelle Vorabversion Zukünftige Version
Haupt-
version
Version Veröffentlichung Wichtigste Änderungen
1.x Ältere Version; nicht mehr unterstützt: 1.0 8. Juni 1995 Offiziell "Personal Home Page Tools (PHP Tools)" genannt. Das ist die erste Verwendung des Begriffes "PHP".
2.x Ältere Version; nicht mehr unterstützt: 2.0 16. April 1996 Von den Entwicklern als das "schnellste und einfachste Tool" zum Erstellen von dynamischen Webseiten bezeichnet.
3.x Ältere Version; nicht mehr unterstützt: 3.0 6. Juni 1998 Die Entwicklung wird nicht mehr nur von einer Person vorangetrieben. Zeev Suraski und Andi Gutmans schreiben die Codebasis für diese Version vollständig neu.
4.x Ältere Version; nicht mehr unterstützt: 4.0 22. Mai 2000 Einfache objektorientierte Programmierung hinzugefügt. Hinzufügen einer fortgeschrittenen zweistufigen Parser-/Ausführungsmaschine, Zend Engine genannt.[3]
Ältere Version; nicht mehr unterstützt: 4.0.6 23. Juni 2001 Letzte Sicherheits- und Stabilitätsaktualisierung des Entwicklungszweigs 4.0; Fünf Aktualisierungen erschienen zuvor: 4.0.1 und 4.0.5.
Ältere Version; nicht mehr unterstützt: 4.1 10. Dezember 2001 Einführung von 'Superglobals' ($_GET, $_POST, $_SESSION, etc.)
Ältere Version; nicht mehr unterstützt: 4.1.2 12. März 2002 Letzte Sicherheits- und Stabilitätsaktualisierung des Entwicklungszweigs 4.1; Zuvor erschien die Aktualisierung 4.1.1.
Ältere Version; nicht mehr unterstützt: 4.2 22. April 2002 Standardmässige Deaktivierung von register_globals. Daten, die über ein Netzwerk empfangen werden, werden nicht direkt in den globalen Namensraum eingefügt. Damit werden potentielle Sicherheitslücken in der Anwendung verhindert.
Ältere Version; nicht mehr unterstützt: 4.2.3 6. September 2002 Letzte Sicherheits- und Stabilitätsaktualisierung des Entwicklungszweigs 4.2; Zwei Aktualisierungen erschienen zuvor: 4.2.1 und 4.2.2.
Ältere Version; nicht mehr unterstützt: 4.3 27. Dezember 2002 Einführung von CLI als Zusatz zu CGI.
Ältere Version; nicht mehr unterstützt: 4.3.11 31. März 2005 Letzte Sicherheits- und Stabilitätsaktualisierung des Entwicklungszweigs 4.3; Zehn Aktualisierungen erschienen zuvor: 4.3.1 bis 4.3.10.
Ältere Version; nicht mehr unterstützt: 4.4 11. November 2005 Hinzufügen von Man Seiten für phpize und php-config Skripten.
Ältere Version; nicht mehr unterstützt: 4.4.9 7. August 2008 Letzte Sicherheits- und Stabilitätsaktualisierung des Entwicklungszweigs 4.4; Acht Aktualisierungen erschienen zuvor: 4.4.1 bis 4.4.8.
5.x Ältere Version; nicht mehr unterstützt: 5.0 13. Juli 2004 Zend Engine II mit einem neuen Objektmodell. Neue Sprachkonstrukte (z.B. private Methoden und Attribute, Überladung) erleichtern objektorientiertes Programmieren. Exceptions hinzugefügt, Reflections API, MySQLi (MySQL verbessert, objektorientiert und auf aktuelle MySQL-Versionen zugeschnitten), SQLite (vollständig client-basiertes, dem SQL Standard zu 95 % entsprechendes Datenbanksystem), SimpleXML (einfacher XML-Parser, Ändern von Einträgen sowie Hinzufügen von Kindelementen sind möglich), DOM-Unterstützung (objektorientiert)
Ältere Version; nicht mehr unterstützt: 5.0.5 5. September 2005 Letzte Sicherheits- und Stabilitätsaktualisierung des Entwicklungszweigs 5.0; Vier Aktualisierungen erschienen zuvor: 5.0.1 bis 5.0.4.
Ältere Version; nicht mehr unterstützt: 5.1 24. November 2005 Leistungsverbesserungen durch die Einführung von Compilervariablen. Datenbankabstraktionsschicht hinzugefügt ( PDO)
Ältere Version; nicht mehr unterstützt: 5.1.6 24. August 2006 Letzte Sicherheits- und Stabilitätsaktualisierung des Entwicklungszweigs 5.1; Fünf Aktualisierungen erschienen zuvor: 5.1.1 bis 5.1.5.
Ältere Version; nicht mehr unterstützt: 5.2 2. November 2006 Schnellere und effizientere Speicherverwaltung, Filter-Erweiterung hinzugefügt (Filtern und Verifizieren von Benutzereingaben), JSON hinzugefügt (Serialisierung von PHP-Variablen, nützlich im Zusammenspiel mit Ajax), ZIP (Auslesen und Erstellen von ZIP-Archiven) hinzugefügt, objektorientierte Datums-Erweiterung (DateTime und DateTimeZone) hinzugefügt
Aktuelle Version: 5.2.8 8. Dezember 2008 Aktuelle Version; Sicherheits- und Stabilitätsaktualisierung; Sieben Aktualisierungen erschienen zuvor: 5.2.1 bis 5.2.7.
Vorabversion: 5.3a3 4. Dezember 2008 Dritte Entwicklervorschauversion von PHP 5.3; Voraus gingen 5.3 Alpha 1 und 5.3 Alpha 2.
Die nächsten zu erwartenden Veröffentlichungen/Daten
5.x Zukünftige Version: 5.3 1. Quartal 2009 Unterstützung von Namensräumen (Namespaces); Verbesserter XML Support durch Nutzung von XMLReader und XMLWriter; SOAP Unterstützung, Statische Bindung, Jump label (begrenzt auf goto), Closure, Native PHP Archive
6.x Zukünftige Version: 6.0 Unicode Support; Entfernung der ereg Erweiterung, 'register_globals', 'magic_quotes' und 'safe_mode'; Entfernung von mime_magic und Restrukturierung von fileinfo() für besseren MIME Support

In der Regel wird jedem Entwicklungszweig ein Maintainer zugeordnet welcher von den Hauptentwicklern bestimmt wird. Der Maintainer ist nun für die Verwaltung und die Pflege des ihm zugeordneten Entwicklungszweiges zuständig. Aktuell ist ausschließlich den Zweigen für PHP 4.4.x, PHP 5.2.x und PHP 5.3.x ein Maintainer zugeordnet.

Ausblick

Zur Zeit wird die Version 6.0 entwickelt. Bisher bekannte Änderungen sind zum einen die Entfernung von „Altlasten“ wie Register Globals, Magic Quotes und dem Safe Mode, zum Anderen die Unterstützung von Unicode. Neuerungen wie Namensräume, „late static binding“[4] und ein neuer, nativer MySQL-Treiber waren eigentlich für die Version 6 geplant, sollen nun aber schon in PHP 5.3 eingeführt werden (siehe auch Abschnitt Behebung der Mängel).

Am 13. Juli 2007 hat das Entwickler-Team angekündigt, die Unterstützung für PHP 4 bis zum August 2008 einzustellen.[5][6] Da es zum Zeitpunkt dieser Ankündigung noch zahlreiche PHP 4-Installationen gibt, sind verantwortungsvolle Entwickler und Administratoren zur baldigen Migration ihrer PHP-Anwendungen gezwungen.

Allgemein

Darstellung der Funktionsweise von PHP

PHP ist ein System, das PHP-Code serverseitig verarbeitet. Das bedeutet, dass der Quelltext nicht an den Browser übermittelt wird, sondern an einen Interpreter auf dem Webserver – im Gegensatz zu JavaScript, das clientseitig vom Browser interpretiert wird. Erst die Ausgabe des PHP-Interpreters wird an den Browser geschickt. In den meisten Fällen ist dies ein HTML-Dokument, wobei es mit PHP aber auch möglich ist, andere Dateitypen, wie Bilder oder PDF-Dateien, zu generieren.

Um eine PHP-Datei im Rahmen einer Webanwendung ausführen zu können, benötigt man ein System, das mit den in der Datei enthaltenen Anweisungen umgehen kann. Aus diesem Grund wird durch eine Schnittstelle (beispielsweise ISAPI oder CGI) der Interpreter von einem Server-Daemon bzw. Server-Dienst (z. B. Apache oder IIS) ausgeführt. Die Kombination von Linux/Windows als Betriebssystem, Apache als Webserver, MySQL als Datenbanksystem und PHP wird LAMP bzw. WAMP genannt. Fertige LAMP- und WAMP-Pakete, die das einzelne Laden und Konfigurieren von Paketen aus dem Internet unnötig machen, werden u. a. im Projekt XAMPP entwickelt, wobei es inzwischen Versionen für Linux, Solaris, Windows und Mac OS X gibt.

Vorteile der serverseitigen Ausführung sind, dass beim Client (Browser) keine speziellen Fähigkeiten erforderlich sind oder Inkompatibilitäten auftreten können, wie das etwa bei den verschiedenen Ausprägungen von JavaScript der Fall ist. Außerdem bleibt der PHP-Quelltext der Seite auf dem Server, und nur die generierten Daten sind für den Besucher einsehbar. Gleiches gilt für andere Ressourcen wie Datenbanken, die daher auch keine direkte Verbindung zum Client benötigen.

Nachteilig ist, dass jede Aktion des Benutzers erst bei einem erneuten Aufruf der Seite erfasst werden kann. Da PHP normalerweise in einer Webserver-Umgebung läuft, unterliegt es auch dem zustandslosen HTTP. Außerdem wird jede PHP-Seite vom Webserver interpretiert, wodurch dessen Belastung steigt. Diese Vor- und Nachteile sind nicht PHP-spezifisch, sondern treten bei jeder Webanwendung auf. Zusätzlich liest, prüft und übersetzt der Interpreter den Quelltext bei jedem Aufruf erneut. Dies mindert die Reaktionsgeschwindigkeit des Servers und erhöht nochmals die Last. Um dem entgegenzuwirken, stehen verschiedene Bytecode-Caches zur Verfügung, welche eine zur Ausführung vorbereitete Version des Programmes zwischenspeichern und somit den Zugriff auf diese Datei beim nächsten Aufruf beschleunigen (siehe auch Abschnitt Performance).

Mit PHP lassen sich auch kommandozeilenorientierte Skripte, die vom Internet unabhängig sind, schreiben. Die GTK-Erweiterung stellt sogar eine Programmierschnittstelle für eine grafische Oberfläche zur Verfügung, für die weder ein Webserver noch ein Browser benötigt werden. Die ersten Versionen der Schnittstellen zur grafischen Oberfläche und zu anderen Betriebssystemfunktionen waren spärlich und wurden kaum verwendet. Die aktuell entwickelte PHP-GTK-Version 2 strebt hingegen eine Abdeckung der GTK-API von 95% an.[7] Gegenwärtig wird PHP jedoch vor allem auf Webservern genutzt.

Code-Beispiel

Einfaches PHP-Skript (gibt „Hallo Welt!“ aus):

<?php
  echo "Hallo Welt!";
?>

Anmerkung: echo kann auch durch print ersetzt werden, und es können auch einfache Anführungszeichen (') statt doppelten (") sowie die Heredoc-Syntax[8] verwendet werden. Die Unterscheidung der einfachen von den doppelten Anführungszeichen entscheidet darüber, ob in der Zeichenkette auftauchende Variablennamen unverändert zu übernehmen oder durch den entsprechenden Variableninhalt zu ersetzen sind. Außerdem wird die Bearbeitung von Escape-Sequenzen hierdurch gesteuert.

Das Skript in HTML integriert (gibt ebenfalls „Hallo Welt!“ auf der Webseite aus):

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
 <html>
   <head>
    <title>Hallo-Welt-Beispiel</title>
   </head>
   <body>
     <?php 
       echo "Hallo Welt!";
     ?>
   </body>
 </html>

Mängel

PHP ist zeitweise ungesteuert gewachsen, so wurden viele ähnlich arbeitende Funktionen oft unterschiedlich benannt. Auch die logische Reihenfolge der Funktionsparameter stimmt bei Funktionen mit ähnlichem Zweck nicht immer überein. Zudem sind trotz vorhandener Objektorientierung die meisten Standardbibliotheken noch prozedural angelegt. Threading fehlt in PHP völlig, einige PHP-Module sind nicht threadsicher.

PHP besitzt keinen nativen Bytecode-Cache, was ohne entsprechende Erweiterung bei jedem Aufruf einer Datei ein komplettes Parsen notwendig macht.

Behebung der Mängel

PHP wird kontinuierlich weiterentwickelt und befindet sich derzeit, durch die Einstellung der Entwicklung von PHP 4, in einem großen Wandel.

Seit der Version 5 unterstützt PHP durch Kapselung der Daten, Destruktoren und Ausnahmebehandlung per Exceptions verbesserte und erweiterte Möglichkeiten der objektorientierten Programmierung. Auch Objekt-Variablen sind in PHP 5 wie bei den meisten Programmiersprachen, nur noch Referenzen auf Objekte und nicht wie in PHP 4 die Objekte selbst. Ebenso wurde dem oft bemängelten uneinheitlichen Zugriff auf verschiedene Datenbanken in der Version 5.1 mit der objektorientierten Datenbankabstraktionsebene PDO entgegengewirkt. Ab der Version 5.3 wird PHP zudem Namensräume unterstützen.[9]

In der Version 6 werden endgültig Probleme verursachende Komponenten wie Magic Quotes[10], der Safe Mode[11] sowie Register Globals[12], die schon länger standardmäßig deaktiviert sind, entfernt. Auch wird der Standardzeichensatz von ISO 8859-1 auf Unicode geändert.[13] Damit werden vor allem interne Probleme mit Sprachkonstrukten bei der Verarbeitung von Unicode gelöst. Bis PHP 6 gibt es nur wenige Funktionen, bei denen ein Zeichensatz für die Verarbeitung von Zeichenketten angegeben werden kann, sowie Funktionen zur Konvertierung von und nach UTF-8.

Häufige Problemquellen

Programmierungsspezifisch

Die schwache Typisierung von PHP ist eine häufige Fehlerquelle. Der Fehler tritt auf, wenn nicht der Operator für typsichere Vergleiche verwendet wird, wenn numerische Werte mit Zeichenketten verglichen werden sollen, wobei es durch die implizite Typumwandlung zu unerwarteten Ergebnissen kommen kann. Auch die unübliche Vereinigung des Array-Konzepts mit dem Dictionary-Konzept sorgt bei Programmierern, die mit anderen Programmiersprachen vertraut sind, oft für Fehler. Zudem ist es in PHP nicht möglich, eine Variablendeklaration zu erzwingen. Variablen werden vielmehr automatisch angelegt, wenn sie erstmals verwendet werden. Dies ist zwar bequem, hat aber zur Folge, dass insbesondere Tippfehler im Variablennamen bei der Zuweisung eines Wertes an eine Variable zu nur schwer auffindbaren Programmfehlern führen. Allerdings können diese durch eine Änderung der Fehlerberichterstattung abgefangen und erkannt werden.[14]

Webanwendungsspezifisch

Im Zusammenhang mit globalen Variablen und unsicheren Serverkonfigurationen können durch Variablenmanipulation Sicherheitslücken entstehen, so können über die URL einer Seite Variablen geändert werden, wenn diese nicht ordnungsgemäß vor der ersten Benutzung initialisiert werden. Beispielsweise erhält durch den Aufruf von http://example.com/beispiel.php?a=test&b=irgend_ein_wert die Variable a den Wert „test“ und b entsprechend den Wert „irgend_ein_wert“. Haben nun Variablen, die im Skript verwendet werden, den selben Namen wie die in der URL übergebenen Variablen und werden ohne vorherige Prüfung verwendet, können Sicherheitslücken entstehen. Um diese Art von Manipulation zu verhindern, sollte die automatische Variablenvorbelegung mit der Option register_globals=off (seit PHP 4.2 standardmäßig voreingestellt) in der PHP-Konfiguration abgeschaltet werden. Sollte dies nicht möglich sein, muss zumindest jede Variable vor der ersten Verwendung initialisiert werden. Auf die per URL übergebenen Variablen kann über die globalen Arrays $HTTP_GET_VARS und $HTTP_POST_VARS (je nach Übertragungsart) bzw. seit PHP 4.1.0 über die globalen Arrays $_GET und $_POST zugegriffen werden.

Die Gefahren über SQL-Injections oder Cross-Site Scripting-Attacken sind nicht PHP spezifisch, sondern sind für alle Webanwendungen vorhanden. Sie lassen sich nur dann eliminieren, wenn die Programmierer alle Daten, die das Programm von "außen" über HTTP oder andere Protokolle empfängt, sorgfältig prüfen und filtern.

Schutzsysteme für PHP-Installationen

Suhosin[15] ist ein von Stefan Esser, einem ehemaligem Mitglied des „PHP Security Response Team“[16] und Mitentwickler von PHP, entwickeltes Schutzsystem für PHP-Installationen. Es wurde entworfen, um den Server und die Benutzer vor bekannten und unbekannten Fehlern in PHP-Anwendungen und im PHP-Kern zu schützen.

Performance

Setzt man PHP als CGI-Programm ein, so leidet die Performance, denn für jeden HTTP-Request startet der Webserver hier eine neue Instanz des PHP-Interpreters. Um den Start der Interpreter-Instanzen zu sparen, setzt man PHP üblicherweise als Servermodul, also als Teil der Webserver-Prozesse, oder über FastCGI ein.

Laut dem Computer Language Shootout[17] wie auch bei dessen Windows-Pendant Win32 Computer Language Shootout[18] liegt PHP bei Standardproblemen in Bezug auf Laufzeit und Ressourcenverbrauch in den meisten Benchmarks leicht bis deutlich hinter anderen populären Skriptsprachen wie Python oder Perl.

Steigerung der Performance

PHP besitzt selbst keinen Bytecode-Cache, was dazu führt, dass ein Skript bei jedem Aufruf neu übersetzt werden muss. Um dem entgegenzuwirken, gibt es einige Erweiterungen, die diese Funktionalität nachrüsten, wie beispielsweise den eAccelerator, den Alternative PHP Cache sowie den kommerziellen Zend Optimizer. Besonders bei umfangreichen Skripten kann so eine deutliche Steigerung der Performance erreicht werden.

Verbreitete PHP-Applikationen

Es gibt verschiedene, sehr weit verbreitete Applikationen, die in PHP geschrieben wurden. Hier eine kleine Auswahl.

Lizenz und Bezug

PHP 3 wurde unter der GNU General Public License (GPL) vertrieben. Seit Version 4 wird PHP unter der PHP License vertrieben, da der neue Parser, die Zend Engine, vom Hersteller Zend unter einer nicht GPL-kompatiblen Lizenz veröffentlicht wird. Die PHP-Lizenz ist eine Softwarelizenz, die die freie Verwendung und Veränderung der Quelltexte erlaubt. Die Software kann somit kostenlos aus dem Internet geladen werden; daneben ist PHP auch schon bei einigen Betriebssystemen (z. B. bei Linux-Distributionen oder Mac OS X) im Lieferumfang enthalten.

Literatur

Gedruckte Werke zu PHP veralten aufgrund der permanenten Weiterentwicklung von PHP schnell. Die aktuellen Informationen und Dokumentationen findet man auf der offiziellen Website.

Wiktionary: PHP – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Wikibooks: Websiteentwicklung: PHP – Lern- und Lehrmaterialien

Quellen

  1. Rasmus Lerdorf: "PHP's design goal from the very beginning is very simple. To solve the common web problem. That's it."
  2. Ankündigung von Rasmus Lerdorf zu PHP 1.0 in der Newsgroup comp.infosystems.www.authoring.cgi
  3. PHP: PHP 4 ChangeLog. The PHP Group, 3. Januar 2008, abgerufen am 22. Februar 2008.
  4. http://blog.webteam.at/2007/uber-ein-neues-halbes-feature-in-php-53/, "Einführung in late static binding"
  5. Heise online: Pflege von PHP4 wird zum Jahresende weitgehend eingestellt
  6. PHP.net News Archive: PHP 4 end of life announcement
  7. http://gtk.php.net (Englisch), abgerufen am 17. Juni 2007
  8. PHP-Handbuch: Heredoc-Syntax
  9. PHP-Handbuch: Namespaces
  10. PHP-Handbuch: Magic quotes
  11. PHP-Handbuch: Safe mode
  12. PHP-Handbuch: Register Globals
  13. PHP-Conference 2005: Präsentation von Andrei Zmievski (PDF)
  14. PHP-Handbuch: Option error_reporting
  15. Hauptseite des Suhosin-Projekts
  16. News auf Golem.de: „PHP-Sicherheit: Stefan Esser wirft hin“
  17. The Computer Language Benchmarks Game
  18. The Great Win32 Computer Language Shootout