PHP (rekursives Akronym für "PHP: Hypertext Preprocessor", ursprünglich "Personal Home Page Tools") ist eine Skriptsprache mit einer an C bzw. Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten verwendet wird. Bei PHP handelt es sich um Open-Source.

PHP zeichnet sich besonders durch die leichte Erlernbarkeit, breite Datenbankunterstützung und Internet-Protokolleinbindungen, sowie die Verfügbarkeit zahlreicher, zusätzlicher Funktionsbibliotheken aus. Es existieren zum Beispiel Bibliotheken, um allein mit PHP GTK-Anwendungen zu entwickeln.

PHP ist eine serverseitig interpretierte Sprache. Das bedeutet, dass sie im Gegensatz zu HTML oder weitestgehend JavaScript der Quelltext nicht direkt an den Browser übermittelt, sondern erst vom Interpreter auf dem Webserver ausgeführt wird. Die Ausgabe des Skriptes wird dann an den Browser geschickt. Die Ausgabe ist in den meisten Fällen eine HTML-Seite, es ist aber auch möglich, mit PHP andere Datentypen wie z.B. Bilder zu generieren.

Die Vorteile der serverseitigen Ausführung sind, dass beim Clienten (Browser) keine speziellen Fähigkeiten erforderlich sind oder Inkompatibilitäten auftreten können, wie es z.B. bei Javascript und den verschiedenen Browsern der Fall ist. Außerdem bleibt der PHP-Quelltext der Seite auf dem Server, nur der generierte Code ist für den Besucher einsehbar. Gleiches gilt für andere Ressourcen wie z.B. Datenbanken, die daher auch keine direkte Verbindung zum Clienten benötigen.

Nachteilig ist, dass jede Aktion des Benutzers erst bei einem erneuten Aufruf der Seite erfasst werden kann.

Außerdem wird jede PHP-Seite vom Server interpretiert, wodurch die Auslastung des Servers steigt. Diese Vor- und Nachteile sind nicht PHP spezifisch, sondern treten bei grundsätzlich jeder Webapplikation auf.

PHP ist zeitweise etwas ungesteuert gewachsen, so funktioniert der Zugriff auf eine Datenbank mittels der MySQL-Funktionen anders als über ODBC; noch deutlicher wird dies beispielsweise bei Inkonsistenzen der Funktionen zur String-Bearbeitung. Zwar besitzt PHP bereits seit Version 3 grundlegend die Funktionalität, um objektorientiertes Programmieren zu unterstützen (diese wurden in Version 4 deutlich verbessert), bisher ist jedoch die gesamte Standardbibliothek prozedural angelegt. Auch bei objektorientierten Sprachen übliche Features wie Kapselung der Daten (z.B. private Variablen), Destruktoren (ersatzweise lässt sich aber in den meisten Fällen die Funktion register_shutdown_function() verwenden) oder Fehlerbehandlung per Exceptions (lediglich etwas unsauberer Workaround mit set_error_handler(), error_reporting() möglich) suchte man in PHP 4 noch vergeblich.

Die aktuelle Version ist seit 13. Juli 2004 PHP 5 mit der neuen Zend Engine 2. Damit wurde dieser Missstand behoben. Dafür wurden Änderungen am Verhalten von PHP selbst nötig (so sind Variablen in PHP 5 wie bei den meisten Sprachen nur noch eine Referenz auf das Objekt und nicht wie in PHP 3 und 4 das Objekt selbst).