PHP wurde von dem Kanadier Rasmus Lerdorf entwickelt, dem es zu lästig wurde, seine FORMS mit CGI-Skripten in Perl auszuwerten, und der sich auch einen leichteren Datenbankzugriff wünschte, ein Vorhaben, das mit Perl eher umständlich ist. Der ursprüngliche Name von PHP war PHP/FI, was für Personal Home Pages / Form Interpreter stand. Die neue Abkürzung ist ein Akronym im GNU Stil, und steht für PHP: Hypertext Preprocessor. Die Syntax von PHP ähnelt teilweise der von C, Perl und Java. String-
und Speicherverarbeitung wurde eher an Perl angelehnt, da diese mächtiger
und einfacher zu benutzen sind. Ein einfache Klassenmodell mit Vererbung
ist an Java und C++ angelehnt. PHP kann als normales CGI-Programm laufen, oder als Modul in einen Webserver eingebettet werden, wobei zur Zeit der Apache-Server sowie die Produkte von Netscape und Microsoft unterstützt werden. Fast alle gebräuchlichen Unix-Varianten werden unterstützt, da das Programm im Quellcode vorliegt. Auch auf Windows NT und 95 ist PHP mit einigen Einschränkungen lauffähig. Datenbanken werden von PHP über spezifische Funktionen angesprochen, als Abfragesprache wird SQL verwendet. PHP unterstützt eine große Zahl von DB-Systemen.
PHP-Code wird direkt in die HTML-Seite geschrieben. Um für den PHP-Interpreter zu kennzeichnen, welche Teile der Seite er verarbeiten soll, muß der Code von einem öffnenden und einem schließenden Tag umgeben werden. Das öffnenden Tag ist <?, das schließende ?>. In einer HTML-Seite können beliebig viele solcher PHP-Blöcke enthalten sein. Aller Text zwischen den beiden Tags muß gültiger PHP-Code sein, HTML ist hier direkt nicht erlaubt, kann jedoch mit Funktionen von PHP erzeugt werden. Das nachstehende Beispiel bindet einen Seitenkopf ein, gibt dann die aktuelle Zeit aus und fügt dann einen Seitenfuß ein. Die Funktionen im einzelnen werden im folgenden erklärt:
PHP-Code besteht aus einer Folge von Anweisungen. Das können zum Beispiel Variablenzuweisungen, Funktionsaufrufe oder Schleifen sein. Eine Anweisung kann wiederum einen Block von Anweisungen umfassen, wie im Falle von bedingter Ausführung oder von Schleifen. Einzelne Anweisungen müssen voneinander getrennt werden. In PHP wird dazu das Semikolon (;) verwendet. Vor dem schließenden Tag braucht kein Semikolon gesetzt zu werden, es ist jedoch guter Programmierstil, dort trotzdem eines einzufügen. Dies verhindert Fehler, wenn nachträglich am Ende eines Blocks weitere Anweisungen eingefügt werden. PHP verwendet untypisierte Variablen, d.h. es muß nicht festlegt werden,
ob Zahlen, Texte oder sonstige Werte in einer Variablen gespeichert
werden sollen, PHP paßt den Typ automatisch an die Verwendung an. So
kann zum Beispiel mit einem String, der nur eine Zahl enthält, und einer
Zahl ganz normal gerechnet werden.
Mit PHP lassen sich nette Programme entwickeln, aber das Interessante dabei ist es, Text an den Browser auszugeben, bzw. in die ausgegebene HTML-Seite einzufügen. PHP bietet dafür das Kommando echo an, das Text nicht auf den Bildschirm, sondern an den Browser schickt. So kann HTML-Code erzeugt werden, der dann vom Browser verarbeitet wird.
Innerhalb eines auszugebenden Textes können Variablen verwendet werden, die dann von PHP mit den aktuellen Werten ersetzt werden.
Ein Problem, das bei der Erzeugung von HTML-Code aus PHP heraus auftritt, ist die schlechte Lesbarkeit des erzeugten Codes, da PHP von sich aus keine Zeilenumbrüche einfügt. Will man im Code solch einen Umbruch haben, muß er explizit in der \n erzeugt werden.
Wie in anderen Programmiersprachen gibt es auch in PHP Möglichkeiten, die Ausführung von Code von bestimmten Bedingungen abhängig zu machen. IF
Der ELSE-Zweig kann wieder mit einer IF-Abfrage verknüpft sein:
Folgende Vergleichsoperatoren sind in PHP definiert:
SWITCH Die SWITCH-Anweisung ist prinzipiell eine Vereinfachung von vielen
IF..ELSEIF..ELSEIF..ELSE Anweisungen hintereinander. Der Inhalt einer
Variablen/eines Wertes wird gegen mehrere verschiedene Möglichkeiten
auf Gleichheit überprüft. Außerdem ist ein DEFAULT-Fall möglich.
Um Anweisungen mehrfach auszuführen, werden Schleifen verwendet. PHP bietet dazu drei verschiedene Varianten, die alle ähnlich sind, jedoch für verschiedene Anweisungszwecke mehr oder weniger geeignet sind. WHILE
Die Anweisungen in der Schleife werden solange ausgeführt, wie die Bedingung zu Beginn eines Schleifendurchlaufs erfüllt ist. Ist dies nicht der Fall, werden alle Anweisungen in der Schleife übersprungen und die Ausführung wird nach dem endwhile; fortgesetzt. DO ... WHILE
Im Unterschied zur WHILE-Schleife wird hier erst nach dem Schleifendurchlauf die Bedingung geprüft, was zu dem Effekt führt, daß die Anweisungen in der Schleife in jedem Fall einmal ausgeführt werden. FOR
Vor dem Einstieg in die Schleife wird die erste Anweisung in der Klammer
ausgeführt (hier: =0), dann läuft die Schleife solange wie
die Bedingung in der Mitte (hier: <10) erfüllt ist. Nach
jedem Schleifendurchlauf wird die dritte Anweisung (hier: ++)
ausgeführt.
Neben einfachen Variablen gibt es in PHP auch Arrays. Der Index des
Arrays wird in eckigen Klammern hinter die Bezeichnung der Arrayvariablen
angehängt. Im Vergleich zu C sind PHP-Arrays assoziativ, d.h. sie haben
keine fortlaufende Nummerierung der Elemente, sondern es können beliebige
Schluüssel verwendet werden.
PHP bietet eine Reihe von Funktionen, die man als Programmierer nutzen kann. Ein Funktionsaufruf besteht aus dem Funktionsnamen gefolgt von einer Argumentsliste in Klammern.
Ein Dokumentation aller Funktionen ist in der Dokumentation zu PHP zu finden.
Bei der Gestaltung von Websites werden am Beginn und am Ende einer Seite häufig gleiche Elemente wiederverwendet, z.B. ein Seitenkopf/-fuß oder ein Auswahlmenü. Prinzipiell kann man dies auf jeder einzelnen Seite neu schreiben, einfacher ist es jedoch, diese Teile in gesonderten Dateien vorzuhalten und bei Zugriffen auf Seiten diesen Code dann einzubinden. Dadurch wird vor allem auch die Wartbarkeit von ganzen Websites wesentlich vereinfacht, da dann nicht mehr jede Seite einzeln geändert werden braucht, sondern Änderungen lediglich zentral in einer einzigen Datei vorgenommen werden können. PHP3 stellt dazu die Funktion require zur Verfügung, die andere Dateien einbindet. Als Argument wird ein String mit dem Namen der Datei angegeben, die eingebunden werden soll. Zu beachten ist dabei, daß nicht eine URL angegeben wird, sondern der echte Pfad im Dateisystem des Webservers. Es ist ratsam, hier relative Pfade zu verwenden, da ansonsten eine Umstrukturierung des Dateisystems auf dem Server fast alle Seiten unbrauchbar machen würde.
Der Inhalt der Datei wird als HTML-Code eingebunden, d.h. also, daß PHP-Befehle in der eingebundenen Datei in PHP-Tags eingeschlossen werden müssen.
Die Auswertung von FORMS ist mit PHP sehr einfach. PHP stellt für alle Werte, die von einem FORM übertragen werden, Variablen zur Verfügung, deren Namen der Bezeichnung der Felder im FORM entsprechen. Gibt es zum Beispiel in einem FORM ein INPUT-Feld mit dem Namen textfeld, so steht in PHP eine Variable $textfeld zur Verfügung, die den eingegeben Wert enthält. Hier ein Beispiel:
|