PHP3   -   Personal Home Page Tool


Seit einiger Zeit macht eine Software im Internet Furore, die Web-Anwendungen deutlich attraktiver machen kann: PHP. Mit HTML kann man im Prinzip nur statische Seiten beschreiben, d.h. der Netznutzer liest genau die Informationen, die der Autor der betreffenden Web-Seite mehr oder wenig geschickt aufgeschrieben hat. Natürlich gibt es auch schon lange Erweitungen wie CGI oder Server Side Includes, die - durch den Web-Server ausgeführt - Teile von Web-Seiten (oder ganze Seiten) dynamisch erzeugen können. Diese Mechanismen sind allerdings relativ aufwendig und nutzerunfreundlich, spätestens beim Testen von fehlerhaften CGI-Skripts ist schon mancher Web-Autor verzweifelt.
Der Kanadier Rasmus Lerdorf hat deshalb ein Tool entwickelt, das innerhalb von HTML-Seiten eine einfache Datenbankabfrage ermöglichte und auf bequeme Art und Weise Formulareingaben auswerten konnte. Er nannte sein Werkzeug "Personal Home Page Tool". Mittlerweile existiert die dritte Generation dieses Programms, daher die übliche Bezeichnung PHP3, wobei die Abkürzung jetzt für "Professional Home Page Tool - Hypertext Preprocessor" steht. Unter PHP muß man sich jetzt eine Skriptsprache vorstellen. Durch spezielle Anweisungen im HTML-Text, die der WWW-Server interpretiert, bevor er die Seite an den Browser ausliefert, kann ein dynamischer "Text" erzeugt werden. Man muß allerdings bedenken, daß mit PHP erweiterte Dokumente nicht portabel sind, d.h. nur auf solchen WWW-Servern richtig interpretiert werden, die PHP unterstützen. Die Entwicklung von XML wird möglicherweise PHP überflüssig machen.
Heute ist PHP jedoch eine praktikable Lösung.

Die (Weiter-)Entwicklung liegt in den Händen eines internationalen Teams von Open-Source-Software-Enthusiasten. An PHP4 wird schon gearbeitet, wobei insbesondere die Performance verbessert werden soll. PHP3 ist unter der GNU General Public License veröffentlicht und somit kostenfrei nutzbar. Zentrale Anlaufstelle für Informationen rund um PHP3 (und auch zum Download) ist www.php.net.

Natürlich ist PHP3 auch innerhalb der TU Chemnitz nutzbar, der apache-Webserver der Uni versteht diese Skriptsprache seit vergangenem Jahr. Informationen dazu findet man auf der Seite für Web-Autoren. Wir möchten in diesem Artikel anhand weniger Beispiele einen Einblick in die Fähigkeiten von PHP3 geben.

Features und Syntax


PHP ist eine interpretierte Skriptsprache, deren Syntax an C, Perl und Java angelehnt ist. So existieren alle üblichen Operatoren, Ausdrücke und Datentypen. Daneben wartet PHP - abhängig von der konkreten Installation - mit einem nützlichen Satz von Funktionen auf. So sind z.B. Routinen zur Datums- und Zeichenkettenbearbeitung, zur Arbeit mit Dateien und mathematische Funktionen enthalten. Bei der Auswertung von Formularen erzeugt PHP für jedes Formulareingabefeld automatisch eine Variable, deren Wert dem Inhalt des Eingabefeldes entspricht. PHP erlaubt das Setzen und Abfragen von Cookies, kann auf Umgebungsvariablen zugreifen und unterstützt File-Uploading. Durch Zugriffskontrollfunktionen kann bestimmt werden, wer zum Herunterladen berechtigt ist. Das Öffnen von Dateien erfolgt über HTTP genauso einfach wie über das Dateisystem. PHP kann gz-Files verstehen und Erweiterungen zum Parsen von XML-Dokumenten enthalten. Es existieren umfangreiche Funktionen zur dynamischen Erzeugung von GIF-Bildern. Es können natürlich auch externe Programme aufgerufen werden. Wurde PHP mit den IMAP-Funktionen installiert, kann auf Mailboxen zugegriffen werden. Das Versenden von E-Mails ist ebenfalls integriert. Es gibt Module zum Senden von SNMP-Anfragen oder zur Abfrage von LDAP-Servern. Alle Hauptmodule von PHP können statisch in den Web-Server gelinkt werden, aber auch dynamisch zur Laufzeit. Eine der wichtigsten Fähigkeiten von PHP3 ist die ausgedehnte Datenbankunterstützung. Es werden Schnittstellen zu faktisch allen SQL-basierten Datenbanken angeboten, so z.B. Oracle, Sybase, Informix, dBase, Adabas, MySQL. Der PHP-Parser kann in einem Syntax-Farb-Modus laufen. Bei allen Dateien, die auf .phps  enden, werden die PHP-Befehle nicht ausgeführt, sondern die Anweisungen zur besseren Einsicht in verschiedenen Farben dargestellt. Treten bei der Interpretation der PHP-Anweisungen Fehler auf, erhält man eine Meldung mit Hinweis auf die fehlerhafte Zeile. Das ist in der Testphase recht nützlich.

Ein PHP3-Programm innerhalb einer HTML-Seite wird durch das Tag  <?php  eingeleitet und mittels  ?>  abgeschlossen. Das Programm selbst besteht aus einer Folge von C-ähnlichen Anweisungen.

Beispiel 1


Ein erstes, einfaches Beispiel von der oben genannten Web-Seite zeigt die Verwendung von Zeitfunktionen und den Zugriff auf Umgebungsvariablen.
Beispiel 1
Dieses Programm liefert (natürlich in Abhängigkeit vom Aufrufzeitpunkt) folgende Ausgabe:
Beispiel 1 (Ausgabe).
Den PHP-Code im ersten Beispiel sollte eigentlich Jeder mit minimalen Programmerfahrungen lesen (und verstehen) können.

Beispiel 2


Am nächsten Beispiel (zu finden auf der gleichen Web-Seite) sollen Möglichkeiten zur Formularauswertung demonstriert werden.
Beispiel 2
Wird in das Formular für "Name":  Max Mustermann  und für "Alter"  31  eingegeben, so erhält der Nutzer als Ergebnis:
Beispiel 2 (Ausgabe).
Dieses HTML-File enthält sowohl die Erzeugung als auch die Auswertung des Formulars. Da mit  ACTION="s2.php3"  das File selbst adressiert wird, erfolgt der Aufruf der Web-Seite gewissermaßen rekursiv. Beim ersten Durchlauf haben die (PHP-)Variablen  name  und  age  noch keinen Wert, deshalb wird hier nur das Formular angezeigt. Beim zweiten Durchlauf - die Variablen haben nun Werte aus den Formularfeldern - bewirken die echo-Anweisungen die Ausgabe einer Web-Seite.

Beispiel 3


Frappierend sind die in PHP3 integrierten Datenbankschnittstellen. Besonders interessant ist das bei der unter Linux weit verbreiteten Datenbank MySQL, ebenfalls eine freie Software ("Open Source"). Dies unterstützt auch die PHP-Installation auf den Uni-Webservern.
Für diesen Test wurde (mit MySQL-Mitteln) eine ganz primitive Datenbank angelegt, jeder Satz besteht aus 4 Feldern: Satznummer (Index), Name, Vorname und einem Datum (Zeitpunkt der Erzeugung des Satzes). In die so definierte Datenbank wurden 5 Sätze mit frei erfundenen Daten geschrieben. Nach dem Aufruf des PHP-Skripts sieht man folgende Ausgabe:
Beispiel 3 (Ausgabe).
Im unteren Teil des Fensters wird immer der aktuelle Inhalt der Datenbank oder das Ergebnis einer Suchoperation angezeigt. Die Tabellenüberschriften (Name, Vorname, Termin) sind selbst als Button angelegt. Werden Sie betätigt, wird die Tabelle bei der Ausgabe nach dem Inhalt der betreffenden Spalte sortiert.
Vor jeder Tabellenzeile befindet sich ein Radio-Button. Auf eine solche ausgewählte Zeile bezieht sich die Aktion Satz löschen. Die anderen Buttons Neuen Satz einfügen, Satz suchen bzw. Satz ändern arbeiten mit den Eingabefeldern des Formulars
Die Programmierung der Schnittstelle erfolgt hier wieder mit einem Skript, das sich echt rekursiv verhält. Bei jedem Durchlauf wird das Formular erzeugt, eventuell eine Datenbankoperation aufgrund der Betätigung eines Buttons im vorhergehenden "Bild" gestartet und der (neue) Inhalt der Datenbank ausgegeben. Das Skript selbst ist wirklich nicht kompliziert, für eine Veröffentlichung an dieser Stelle nur etwas zu lang. Interessenten finden das Programm an dieser Stelle.

Wolfgang Riedel, Frank Richter, Rico Friedrich, Juni 1999

zurück zum Inhaltsverzeichnis