Beiträge

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.

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.

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.

Die Skriptsprache JavaScript hat man entwickelt, um dynamische HTML-Dokumente im Webbrowser anzeigen zu können. Die Verarbeitung von JS-Code erfolgt meist direkt im Webbrowser des Nutzers. Mit der Programmiersprache Java hat JavaScript jedoch nicht viel gemeinsam.

Entwicklungsgeschichte von JavaScript

Die Skriptsprache wurde von Netscape ursprünglich unter der Bezeichnung LiveScript entwickelt. Das Ziel der Netscape-Entwickler war es, dynamische HTML-Inhalte direkt im Webbrowser des Nutzers darstellbar zu machen. Der Einsatz von JavaScript sollte Entwicklern die Möglichkeit geben, statische HTML-Dokumente mit dynamischen Elementen anzureichern, Nutzer-Aktionen zu interpretieren und darauf entsprechend zu reagieren, Webseiteninhalte dynamisch zu ändern und Inhalte auf Abruf zu generieren und darzustellen.
Die Programmiersprache Java erlebte in der zweiten Hälfte der 1990er-Jahre einen beispiellosen Höhenflug und wurde von vielen Entwicklern genutzt, um interaktive Desktop- und Webanwendungen zu programmieren. Aufgrund einer Zusammenarbeit mit dem IT-Giganten Sun Microsystems, der die Programmiersprache Java im Jahr 1995 der breiten Öffentlichkeit vorgestellt hatte, entschied sich Netscape dazu, ihre neue Sprache in Anlehnung an die Programmiersprache von Sun Microsystems JavaScript zu nennen. Allerdings teilen sich diese beiden Sprachen fast keine Gemeinsamkeiten.

Netscape veröffentlichte JS im Jahr 1995. Es war fester Bestandteil des zu dieser Zeit sehr beliebten Webbrowsers Netscape Navigator. Begünstigt durch die schnelle Verbreitung des Internets Ende der 1990er-Jahre verbreitet sich JS sehr schnell. Im Laufe der Jahre wurde die Skriptsprache kontinuierlich weiterentwickelt und durch neue Funktionen und Features ergänzt, sodass JS heutzutage neben PHP (LINK) und Python (LINK) zu den grundlegenden Sprachen des World Wide Web gehört.

Skriptsprache ist sehr dynamisch und äußerst flexibel

Einen wesentlichen Anteil am Erfolg von JavaScript hat die Unabhängigkeit von spezifischen Webbrowsern beigetragen. Die Skriptsprache selbst ist sehr dynamisch und äußerst flexibel. Sie verfügt über objektorientierte Eigenschaften und bietet Unterstützung für verschiedene Programmierparadigmen, wie beispielsweise prozedurale, objektorientierte oder funktionale Paradigmen. Dank Node.js lässt sich JavaScript heutzutage nicht nur clientseitig im Rahmen eines Webbrowsers nutzen, sondern auch direkt auf einem Webserver (Apache oder nginx).

Welche Projekte kann man mit JavaScript realisieren?

Durch den Einsatz von JS lassen sich viele unterschiedliche Projekte und Funktionen realisieren.

Im Folgenden gehen wir auf gängige Einsatzgebiete von JavaScript ein:
– dynamische Veränderung von Webseiteninhalten
– Erstellung interaktiver Menüs
– Aktualisierung von HTML-Elementen und Daten, ohne einen Reload der gesamten Webseite
– Veränderung von Texten oder Grafiken durch Aktionen des Nutzers

Abgrenzung zu Skriptsprache Java

Obwohl JavaScript und Java einen ähnlichen Namen haben, teilen sich die beiden Programmiersprachen jedoch nur wenige Gemeinsamkeiten. Bei Java handelt es sich um eine objektorientierte, vollwertige Programmiersprache, die einen wesentlich größeren Funktionsumfang und Befehlssatz bietet als JavaScript. Experten sehen Java als Derivat von C++ an.
Bei JavaScript hingegen handelt es sich um eine Skriptsprache, die grundsätzlich nicht alleine lauffähig ist. JS-Skripte benötigen eine Laufzeitumgebung wie den Webbrowser oder Node.js, um ausgeführt zu werden. JavaScript war ursprünglich dazu vorgesehen,  um es lediglich im Browser einzusetzen. Inzwischen lassen sich JS-Skripte jedoch auch unabhängig vom Browser direkt auf dem Webserver ausführen.

Sicherheitsaspekte

Mit den Möglichkeiten, die JavaScript mit sich bringt, gibt es auch ebenso viele sicherheitskritische Aspekte bei der Ausführung von JS-Skripten. Viele dieser Problemstellungen werden durch das sogenannte „Sandbox-Prinzip“ effektiv gelöst. Alle Befehlszeilen werden von dem Browser in einem isolierten Bereich ausgeführt und haben ausschließlich Zugriff auf die Ressourcen des Webbrowsers und nicht des gesamten Computers.
So wird  der Zugriff auf das Dateisystem durch die Sandbox unterbunden. Darüber hinaus führen moderne Webbrowser wie Chrome oder Firefox jede aufgerufene Webseite, Webanwendung oder Domain  isoliert voneinander aus. Dies erschwert den Datenaustausch zwischen den einzelnen Instanzen, wodurch das Risiko vor sogenannten „Cross-Site-Scripting-Angriffen“ minimiert wird.

JavaScript im Kontext der Suchmaschinenoptimierung

Suchmaschinen analysieren den JS-Code in der Regel nicht. Suchmaschinen-Crawler können die dynamische Interaktion  nicht nutzen. Ein Crawler besucht die Webseite so, wie ein Besucher, bei dem JavaScript explizit im Webbrowser deaktiviert ist. Demzufolge kann ein Web-Crawler Websites nicht erreichen, die man in JavaScript geschrieben hat. Dies hat negative Folgen für das Suchmaschinenranking der betroffenen Webpräsenz.

Weitere Problemstellungen bei JS

Es kommt immer wieder vor, dass Webseitenbetreiber versuchen, JS-Code für die eigenen Interessen zu missbrauchen. So können zum Beispiel mehrere Pop-Up-Fenster ohne Zustimmung des Nutzers automatisch geöffnet werden. Weitere Funktionen, mit denen man den JS-Code missbrauchen kann, sind:
– ungewollte Änderungen am Browserfenster
– das Tarnen zwielichtiger Links und Internetadressen
– die absichtliche Deaktivierung von Kontextmenüs zum Speichern und Kopieren von Webinhalten