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.
Dieses Programm liefert (natürlich in Abhängigkeit vom
Aufrufzeitpunkt) folgende 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.
Wird in das Formular für "Name": Max Mustermann und
für "Alter" 31 eingegeben, so erhält der Nutzer als
Ergebnis:
.
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:
.
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.