Was ist PHP?

,

PHP steht für Hypertext Preprocessor. Ursprünglich stand das Akronym/Backronym für „Personal Home Page Tools“. PHP ist eine Skriptsprache, mit der man meist dynamische Webseiten und Webanwendungen erstellt. Es wird serverseitig interpretiert (serverseitige Skriptsprache). Die Skriptsprache unterstützt eine Vielzahl von Datenbanken und Internet-Protokolleinbindungen. Sie ist extrem einfach zu lernen, umfasst aber gleichzeitig leistungsstarke Funktionsbibliotheken für professionelle Webentwickler. Die Skriptsprache ist eine freie Software und bietet sich für private und kommerzielle Zwecke kostenfrei an.

Serverseitiges PHP und clientseitiges JavaScript

Clientseitige Skriptsprachen wie JavaScript werden vom Webbrowser interpretiert. Die serverseitige Skriptsprache PHP interpretiert man hingegen auf dem Webserver. Mit der Skriptsprache wird nur das Ergebnis der Ausführung auf dem Webserver an den Webbrowser zurückgegeben. Damit ist der auf dem Server ausgeführte Programmcode (z. B. Aufruf von Funktionen) unbekannt.

Die Open Source-Skriptsprache entstand speziell für die Webprogrammierung. Sie kann in HTML-Code eingebettet werden. In einem beliebigen HTML-Dokument bindet man PHP-Anweisungen zwischen den Anfangs- und Abschluss-Verarbeitungsinstruktionen  „“ ein. Nun wird ein HTML-Quellcode zeilenweise vom Webbrowser interpretiert und die Zeichenfolge „“ folgende Codefragment vom Server interpretiert. Der Webbrowser kann diesen Code nicht ausführen und reicht diesen daher an seinen Server weiter. Fragt der Client mit seinem Webbrowser eine Datei mit der Endung .php“ an, erkennt die Webserver-Software die Verantwortlichkeit des PHP-Interpreters und leitet die Datei an diesen weiter.

Geschichte der Skriptsprache PHP

Rasmus Lerdorf veröffentlichte PHP 1995. Dieser hatte ursprünglich Skripte für den Privatgebrauch entwickelt. In der ersten Version bestand PHP/FI („Personal Home Page/Forms Interpreter„) aus einer Sammlung von C-Programmen. Der 1968 in Grönland (Dänemark) geborene Programmierer arbeitete zwischenzeitlich für Yahoo und heute bei Etsy.

Bereits ein Jahr nach der Veröffentlichung bezeichnete man Lerdorf’s Skriptsprache von Entwicklern bereits als das „schnellste und einfachste Tool“ zum Erstellen dynamischer Webseiten. Seither verbessert sich kontinuierlich die Stabilität. Auch die Behebung von Fehlern sowie Sicherheitslücken nimmt zu.

Mit der Version 3.x erfolgte eine umfassende Überarbeitung der Skriptsprache. Im Jahr 2000 kamen erste objektorientierte Programmanweisungen dazu. Im Sommer 2004 hat man mit der Version 5 die Objektorientierung ausgebaut. Nach einer Abstimmung der Entwickler wurde die Version 6 ausgelassen und auf Version 5 folgte die Version 7. Die „rasend“ schnelle Version 7 spart bis zu 30 Prozent Ausführungszeit und beansprucht weniger Speicherplatz. Die fertige Version wurde am 3. Dezember 2015 freigegeben. Mit Version 7.3 vom Dezember 2018 konnte man die Performance nochmals deutlich verbessern. Anfang 2019 war Lerdorf’s Skriptsprache auf 79 Prozent aller Websites die serverseitige Programmiersprache. Heute gilt die Skriptsprache als die am häufigsten verwendete serverseitige Programmiersprache zum Erstellen von Webseiten. Bei den meisten Webhostern ist die Skriptsprache bereits vorinstalliert.

Mehr zum Thema:
Digitaler Druck und gedruckte Elektronik: Tradition und Zukunft Hand in Hand

Unterstützte Betriebssysteme, Datenbanken und Protokolle

PHP wird auf allen gängigen Betriebssystemen ausgeführt, darunter Microsoft Windows, Linux und seine Varianten wie etwa HP-UX, Solaris und OpenBSD. Auch auf macOSRISC OS und vielen anderen Betriebssystemen kann die Skriptsprache verwendet werden. Unterstützt werden auch die meisten gebräuchlichen Webserver, wie Apache, Microsoft Internet Information Server, Netscape-ServeriPlanet-Server, Personal Web Server, Oreilly Website Pro-ServerXitamiCaudiumOmniHTTPd und Xitami. Für die meisten Server verwendet die Skriptsprache ein eigenes Modul. Bei Servern mit CGI-Standard kann die Skriptsprache als CGI-Prozessor eingesetzt werden.

Lerdorf’s Skriptsprache kann an eine Vielzahl von Datenbanken angebunden werden. Darunter IBM DB2InformixMsSQL, MySQL, OCI8SQLiteSybase. Darüber hinaus unterstützt sie auch den ODBC Standard (Open Database Connection Standard) und kann sich mit jeder beliebigen Datenbank verbinden.

Zur Kommunikation mit anderen Services werden Protokolle wie LDAP, IMAP, SNMPNNTPPOP3, HTTP, COM (auf Windows) unterstützt. Das Öffnen von Netzwerk-Sockets ist einfach und damit auch die Verwendung weiterer Protokolle. Die Skriptsprache unterstützt WDDX (Web Distributed Data Exchange) für den Austausch komplexer Daten zwischen Programmiersprachen. Auch können auch Java-Objekte instantiiert und transparent als PHP-Objekte verwendet werden.

Was leistet PHP?

Die Skriptsprache wird nicht auf dem Client, sondern komplett auf einem Server verarbeitet. Damit ist der prozessierte Quelltext für den Benutzer am Frontend (Client) nicht sichtbar. Auf dem Server werden mit der gerufenen PHP-Funktion gewöhnlich Programmoperationen einer anderen Sprache erzeugt. Meist ist das Ergebnis einer solchen Server-Funktion ein HTML-Code (Hypertext Markup Language), der an den Webbrowser (Client) zurückgeliefert wird. Mit der Prozessierung auf dem Server kann die Skriptsprache allerdings nicht wie etwa JavaScript auf interaktive Benutzeraktionen reagieren.

Mit der Skriptsprache kann man objektorientierte und prozedurale Programme bzw. Programmteile entwickeln. Zusammen mit dem Programmpaket der Version 5 ließ sich ein vollständiges Objektmodell einführen. Die Möglichkeiten der Entwicklung gehen weit über die HTML-Ausgabe hinaus. Auch das Generieren von Bildern, Flash Animationen (mit libswf und Ming) und PDF-Dateien ist möglich. Darüber hinaus kann jede Art von Text, wie XHTML und XML Dateien erzeugt werden. Die Dateien kann man automatisch generieren, im Client ausgeben oder im Dateisystem speichern. So kann beispielsweise ein serverseitiger Cache dynamische Inhalte erstellen. Lesen Sie hier mehr über den Cache.

Mehr zum Thema:
Was ist eigentlich... ein Backup?

Optimale Einsatzbereiche der Skriptsprache:

  • Verarbeiten der über den Request „php“ gesendeten Daten
  • Verbindungen zu anderen Diensten und Server aufbauen
  • Datenbankoperationen auf dem Server ausführen
  • Dateizugriffe auf dem Server
  • Aufrufen oder Einbinden anderer Skripte.

Nicht möglich mit sind:

  • Interaktive Benutzeraktionen, Verarbeitung von Benutzereingaben auf dem Client
  • Operationen im Browser ausführen
  • Auslesen und Kontrolle von Client- bzwBrowserzuständen
  • Eindeutige Benutzeridentifikationen

Hauptanwendungsgebiete für PHP-Skripte

Serverseitige Programmierung

Auf vielen Webservern ist die Skriptsprache bereits vorinstalliert. Der PHP-Parser (CGI oder Server-Modul) sendet einen Request an den Webserver mit der Installation und zeigt das Ergebnis im Webbrowser des Clients an. Der Webbrowser stellt die Seite mithilfe des Servers dar. Theoretisch können Webserver und Client gleichzeitig auf einem leistungsfähigen Desktop laufen.

Kommandozeilenprogrammierung

Alleine mit dem PHP-Parser können die Skripte auch ohne Server und Webbrowser laufen. Man verwendet die Kommandozeilenprogrammierung für kleinere Programme (auch „Jobs“ genannt), die regelmäßig mittels cron (auf *nix oder Linux) oder dem Task Scheduler (unter Windows) ausgeführt werden. Auch einfache Textverarbeitungen sind mit den Skripten möglich.

Desktop-Anwendungen

Erfahrene Programmierer mit tieferen Kenntnissen der Skriptsprache können selbst Desktop-Anwendungen mit grafischer Oberfläche entwickeln. PHP-GTK ist eine Erweiterung zur Standardauslieferung, mit der man clientseitige Anwendungen schreiben kann. Mit GTK können zudem plattformübergreifende Programme entwickelt werden.

Gründe für den Einsatz von PHP

Die Skriptsprache ist inzwischen die weltweit beliebteste und am weitesten verbreiteten Programmiersprache für das Erstellen von Websites und Webanwendungen. Neben der Entwicklung von Shop-Systemen sind auch viele der großen Content Management Systeme wie WordPress oder Joomla mit der Skriptsprache erstellt. Bei vielen Webhostern gehört die kostenlose Bereitstellung der Skriptsprache zur Standardinstallation.

Vorteile der Skriptsprache:

  • Sehr einfach zu lernen
  • Freie und kostenlose Nutzung
  • Umfangreiche Funktionsbibliotheken

Kritikpunkte an der Skriptsprache:

  • fehlende Thread-Sicherheit bei einigen Modulen (Speicherbereiche des Programms lassen sich nicht exklusiv sperren)
  • die schwache Typisierung kann eine Fehlerquelle darstellen (Operator „==“ und „===“)
  • Variablen lassen sich nicht deklarieren, sondern man deklariert sie bei der erstmaligen Verwendung implizit
  • Funktionen liefern nicht immer Ausnahmen zur Fehlerbehandlung zurück

Grundsätzlich lassen sich die Kritikpunkte mit Workarounds vermeiden.