PHP (rekursives Akronym und Backronym für „PHP: Hypertext Preprocessor“, ursprünglich „Personal Home Page Tools“) ist eine Skriptsprache mit einer an C und Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird. PHP wird als freie Software unter der PHP-Lizenz verbreitet. PHP zeichnet sich durch breite DatenbankunterstützungPHP-Handbuch: Datenbankerweiterungen und Internet-Protokolleinbindung sowie die Verfügbarkeit zahlreicher FunktionsbibliothekenPHP-Handbuch: Erweiterungen aus.
Hallo-Welt-Programm Eine von mehreren möglichen Versionen des Hallo-Welt-Programms in PHP:
<?php echo 'Hallo Welt!'; ?>
Geschichte
Seit der Veröffentlichung im Jahr 1995 nahmen die Entwickler umfangreiche Änderungen innerhalb der Programmiersprache vor. Der Kern der Sprache wurde mit PHP 3 komplett neu erstellt. Deutliche Anpassungen wurden mit PHP 5 bzw. PHP 5.3 vorgenommen, die den Fokus der Programmiersprache auf die objektorientierte Programmierung legt. Klassen waren jedoch bereits mit der vierten Version nutzbar.
Personal Home Page Tools (PHP 1) 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.Ankündigung von Rasmus Lerdorf zu PHP 1.0 in der Newsgroup comp.infosystems.www.authoring.cgi
PHP/FI (PHP 2) Bald schuf Lerdorf eine umfangreichere Version in der Programmiersprache C, in der PHP bis heute entwickelt wird. Das schließlich veröffentlichte PHP/FI (FI stand für Form Interpreter) war Perl sehr ähnlich, wenn auch eingeschränkter.
PHP 3 PHP 3 wurde von Andi Gutmans und Zeev Suraski 1997 neu geschrieben, da das inzwischen erschienene PHP/FI 2 ihrer Meinung nach für E-Commerce unzureichend war. Lerdorf kooperierte nun mit Gutmans und Suraski, und so wurde die Entwicklung von PHP/FI eingestellt. Die Version PHP 3 brachte die Verbreitung der Web-Skriptsprache PHP bedeutend voran. Die neue Sprache wurde einfach unter dem Namen PHP veröffentlicht, ein rekursives Akronym für PHP: Hypertext Preprocessor, um die in den Vorversionen PHP und PHP/FI vorhandene Implizierung einer persönlichen Nutzung zu beseitigen.Die Geschichte von PHP auf php.net, abgerufen am 4. September 2013.
PHP 4 Das von Gutmans und Suraski gegründete Unternehmen Zend Technologies Ltd. entwickelte in der Folge die Zend Engine 1, die den Kern der PHP-4-Standardimplementierung bildet. Mit PHP 4 wurden 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 eine Anzahl neuer 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 mit der Zeit für die Webentwicklung populärer als der vorherige De-facto-Standard Perl, weil es durch seine Spezialisierung als einfacher erlernbar galt.
Seit 2008 sind die Weiterentwicklung und der Support für PHP 4 eingestellt.
PHP 5 Im Sommer 2004 wurde mit Version 5.0 eine weitere Entwicklungsstufe veröffentlicht. Wesentlicher Unterschied zum Vorgänger ist die Zend Engine II, die vor allem ein verbessertes Objektmodell nutzt, somit objektorientierte Anwendungen effizienter ausführt und Sprachkonstrukte wie Überladung ermöglicht. Dazu kommen Exceptions, Reflection, die Integration der Datenbank SQLite sowie Erweiterungen bei XML- und DOM-Handhabung.
Ursprünglich als früher Nachfolger von PHP 5 geplant, wurde die Entwicklung von PHP 6 eingestellt. Geplant war unter anderem die Unterstützung verschiedener Unicode-Standards.Resetting PHP6The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6 Einige Verbesserungen sind in PHP-Versionen ab 5.3 implementiert.
Weitere Möglichkeiten im Rahmen der objektorientierten Programmierung wurden mit PHP 5.3 (Namespaces, Late Static Bindings), 5.4 (Traits, Array- und Konstruktor-Dereferenzierung) und 5.5 (Generatoren) vorangetrieben.Die Entwicklung von PHP 5.4 im Überblick, heise.de, abgerufen am 21. März 2013.New features Neue Funktionen für PHP 5.4 im Überblick (englisch, abgerufen am 21. März 2013) Die Version 5.6 führte variadische Funktionen als natives Sprachfeature und Argument Unpacking ein, um die Verwendung einer variablen Anzahl von Parametern zu ermöglichen.
Mitte 2011 entschieden die Entwickler, den laut eigenen Angaben chaotischen Release-Prozess zu vereinheitlichen. Demnach sollen regelmäßig neue Versionen erscheinen und der Support für ältere Versionen mit einer festen Zeitspanne garantiert werden.RFC: releaseprocess, Entwurf und Abstimmung über einen vereinheitlichten Release-Prozess, wiki.php.net (englisch), abgerufen am 21. März 2013.
Die Weiterentwicklung von PHP 5.4 wurde im Herbst 2015 eingestellt. Auch Sicherheitsupdates werden seit der Veröffentlichung von PHP 5.4.45 am 3. September 2015 nicht mehr zur Verfügung gestellt.
Die Weiterentwicklung von PHP 5.5 wurde am 21. Juli 2016 eingestellt.
Der aktive Support wurde für PHP 5.6 zum 1. Januar 2017 eingestellt.heise.de Auch der Security Support wurde am 31. Dezember 2018 eingestellt.Supported Versions, php.net, Englisch Sicherheitsupdates für diese Versionen werden nur noch im Sonderfall bereitgestellt.
PHP 7 Nach einer Diskussion darüber, ob die nächste PHP-Version den Namen des gescheiterten PHP 6 wiederaufnehmen soll oder stattdessen eine Versionsnummer überspringen und PHP 7 heißen soll, wurde am 29. Juli 2014 bekanntgegeben, dass die Entwickler sich mit 58 zu 24 Stimmen für die Hauptversionsnummer 7 entschieden haben. Der Nachfolger von PHP 5 heißt somit offiziell PHP 7.php.internals: Re: Name of Next Release of PHP (again)PHP RFC: Name of Next Release of PHP
PHP 7 hat eine um bis zu 30 Prozent geringere Ausführungszeit als PHP 5, da unter anderem Hashtabellen neu implementiert wurden.PHP7: PHP reduziert Array-Speicherbedarf deutlich. Golem.de Durch diverse Optimierungen am PHP-Kern beansprucht die neue Version zudem weniger Speicherplatz als der Vorgänger. Auch Komponenten wie Parser, Lexer und Bytecode-Generator wurden einigen Veränderungen unterzogen. Die erste Vorabversion (Alpha 1) erschien am 11. Juni 2015, die fertige Version am 3. Dezember 2015. Bei der Entwicklung von PHP 7 wurde teilweise die Abwärtskompatibilität aufgegeben; beispielsweise die weitverbreiteten „mysql“ Funktionen fielen dabei wegPHP bricht Abwärtskompatibilität. Neue Features beinhalten Engine-Exceptions, anonyme Klassen und CSPRNG-Funktionen. Der aktive Support für PHP 7.0 wurde am 3. Dezember 2017 eingestellt. Genau ein Jahr später, am 3. Dezember 2018, wurde auch der Security Support für diese Version eingestellt.
Anfang Dezember 2016 wurde PHP 7.1 veröffentlicht.
Am 30. November 2017 folgte schließlich nach einer ca. viermonatigen Betaphase PHP 7.2.
Die Neuerungen der aktuellen Version sollen in erster Linie für mehr Klarheit sorgen.
PHP 7.3 erschien am 6. Dezember 2018. Es soll eine deutlich verbesserte Performance zeigen.
Seit dem 24. Oktober 2019 gibt es die Version 7.3.11, nachdem aufgedeckt wurde, dass Nginx-Server mit PHP-FPM aus der Ferne angreifbar waren.
PHP 7.4 erschien am 28. November 2019.
Ab 2006 hat Microsoft unter anderem durch die Bereitstellung von Binärdateien, Bibliotheken und einem Modul für den IIS PHP bis Version 7.4 offiziell unterstützt. 2020 hat das Unternehmen angekündigt, den Support für PHP ab Version 8.0 auslaufen zu lassen.
PHP 8 PHP 8 wurde am 26. November 2020 veröffentlicht. Seit 20. November 2025 ist PHP 8.5 als aktuelle Version veröffentlicht.
Verbreitung mini|250px|Das LAMP-Software-Bündel (hier zusätzlich mit Squid) umfasst PHP.
PHP wurde Anfang 2013 auf etwa 244 Millionen Websites eingesetztPHP just grows & grows, Ergebnisse einer Netcraft-Studie, Januar 2013 (englisch), abgerufen am 1. Februar 2013. und Anfang 2019 von 79 % aller serverseitig erstellen Webseiten als Programmiersprache verwendet. PHP ist die am häufigsten verwendete Programmiersprache zum serverseitigen Erstellen von Websites. Zudem ist sie bei den meisten Webhostern vorinstalliert.
Popularität PHP ist in seiner ursprünglichen Form als web-zentrische Skriptsprache für Webdokumentvorlagen (Templates) konzipiert. Die weite Verbreitung des Apache Webservers und des passenden PHP-Erweiterungsmoduls ermöglicht eine preiswerte und niederschwellige Bereitstellung von Webapplikationsumgebungen, auf denen Software als einfache Quelltextdateien schnell und unkompliziert über Standardprotokolle wie SFTP lauffertig ausgeliefert werden kann. Zudem ermöglicht die schrittweise Erweiterung von statischen Webdokumenten (HTML) mit kleinen Hilfsfunktionen und überschaubaren Logik-Blöcken einen leichten Einstieg in die serverseitige Webprogrammierung. Da der Einsatz von PHP als Template-Engine in dieser Form zustandsfrei ist und sich oft auf überschaubare Prozeduren beschränkt, entfallen bei der Programmierung in PHP in vielen Situationen auch schwierigere, tiefer gehende Problemstellungen der Informatik, wie zum Beispiel Speicher- und Prozessverwaltung oder die Notwendigkeit von Rückruffunktionen. Diese Eigenschaften sind auch mit Ursache für die weite Verbreitung und Popularität von PHP.
Funktionsweise gerahmt|Darstellung der Funktionsweise von PHP
PHP ist ein System, das PHP-Code serverseitig verarbeitet. Das bedeutet, dass der Quelltext nicht an den Webbrowser übermittelt wird, sondern an einen Interpreter auf dem Webserver. Erst die Ausgabe des PHP-Interpreters wird an den Browser geschickt. In den meisten Fällen ist das 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, wie ISAPI oder CGI, der Interpreter von einem Server-Daemon oder Server-Dienst, wie Apache oder IIS, ausgeführt. Die Kombination von Linux/Windows/macOS als Betriebssystem, Apache als Webserver, MySQL als Datenbanksystem und PHP wird LAMP (für Linux), WAMP (für Windows) oder MAMP (für Mac OS X) genannt. Fertige LAMP-, MAMP- und WAMP-Pakete, die das einzelne Laden und Konfigurieren von Paketen aus dem Internet unnötig machen, werden etwa im Projekt XAMPP entwickelt. Hier gibt es Versionen für Linux, Solaris, Windows und Mac OS X, die jedoch nur für Test- und Entwicklungsumgebungen genutzt werden sollen.Sicherheitswarnung der XAMPP-Entwickler, apachefriends.org, abgerufen am 4. September 2013.
Da PHP normalerweise in einer Webserver-Umgebung läuft, unterliegt es auch dem zustandslosen HTTP. Jede PHP-Seite belastet den Webserver durch den Interpreter, zudem arbeitet der Interpreter den Quelltext bei jedem Aufruf erneut ab. Das mindert die Reaktionsgeschwindigkeit des Servers und erhöht die Last. Um dem entgegenzuwirken, stehen verschiedene Bytecode-Caches zur Verfügung, die eine zur Ausführung vorbereitete Version des Programmes zwischenspeichern und somit den Zugriff auf diese Datei beim nächsten Aufruf beschleunigen (siehe auch Abschnitt Bytecode-Caching und Artikel PHP-Beschleuniger).