PHP ist eine in der Syntax stark an Perl angelehnte
serverseitige Scriptsprache. HP steht für Hypertext Preprocessor, und das sagt
doch schon eine Menge: Mit PHP kann serverseitig HTML-Code generiert und an
den Client verschickt werden.
Was heißt serverseitig? Im Gegensatz zu z. B.
Javascript, das direkt im Client-Browser, auf dem Client-Computer abläuft, läuft
PHP direkt auf dem Server. Daraus bereits ergeben sich eine Reihe von
Unterschieden: PHP kann nicht unmittelbar auf Ereignisse (Interaktionen im
Document) reagieren, und es kann nicht auf Objekte des Browsers (window,
document) oder DHTML-Tags zugreifen.
Was kann PHP überhaupt? PHP kann Formulare und Passwörter
auswerten und auf eine Datenbank zugreifen. Also all die Dinge, die ein
Clientseitiges Programm gar nicht können darf (es wäre ja schlimm, wenn jeder
Anwender auf Serverdatenbänke zugreifen und Passwörter einsehen könnte usw.).
Und dafür hat PHP ganz spezielle Funktionen.
Eine Stärke ist das einfache Auswerten eingesandter
Formulare. Jeder, der schon mal versucht hat, ein Formular mit JavaScript oder
Visual Basic auszuwerten, weiß wovon ich rede. In PHP stehen die
Formular-Eingaben automatisch als Variable zur Verfügung.
Für den Zugriff auf Datenbänke stehen zahlreiche
Schnittstellen zur Verfügung. Eingebettet in so eine Schnittstellenfunktion
werden dann die eigentlichen SQL-Kommandos übergeben. (Wer noch nichts mit
Datenbänken zu tun hatte, ist jetzt verwirrt, aber die praktische Anwendung ist
einfacher, als es hier klingt.)
Die einzige Interaktion (mit Clienteingaben) die PHP kennt, ist das clientseitige
Aufrufen von PHP-Dateien, und das Zurücksenden von mit PHP generiertem
HTML-Code. Das ist aber schon eine ganze Menge, und dafür ist PHP optimiert. In
der Praxis heißt das, daß z. B. unmittelbar auf Formulare und individuelle
Anforderungen reagiert werden kann, daß Suchergebnisse zusammengefaßt und
zurückgesandt werden können, sowie daß Seiten automatisch oder interaktiv mit
Informationen aus Datenbänken aktualisiert werden können. Einfache Anwendungen
wären z. B. Gästebücher, Verwaltung von Kontaktanzeigen, Gesuchen, Verwaltung
von Bestellungen, Anzeige von Börsenwerten usw.
Was ist der Unterschied zu Perl? Perl-Programme sind als spezielle Scripte
in speziellen Ordnern (cgi) abgelegt. PHP wird dagegen (ähnlich wie JavaScript)
direkt in den normalen HTML-Quelltext eingebettet. Das bedeutet einen
erheblichen Vorteil, weil gleichbleibende HTML-Bestandteile direkt (auch z. B.
in einem graphischen Editor) erstellt werden können, und nicht die komplette
Datei erst zur Laufzeit generiert werden muß. PHP befindet sich also in der
normalen HTML-Datei, im normalen Ordner der Website. Darüber hinaus wurde PHP im
Bezug auf Sicherheit und Ausführungs-Geschwindigkeit gegenüber Perl
verbessert.
Entscheidung für PHP:
Wenn auf Eurem
Server bereits ein PHP-Interpreter installiert ist: Unbedingt nutzen! Da führt
kein Weg dran vorbei, und die Möglichkeiten die sich Euch bereits mit geringem
Know How erschließen sind gewaltig.
Wenn es keine PHP-Unterstützung gibt, müßt ihr mit Eurem
Provider klären, ob es von Euch installiert werden kann, und beim Provider und
auf der
PHP-Seite die dafür notwendigen Informationen und
das Programm besorgen. Dieser Weg ist nicht ganz einfach, und funktioniert nicht
bei allen Servern und Providern. In jedem Fall müßt ihr dann prüfen, ob
ihr PHP unbedingt braucht, und ob der Ärger und Aufwand lohnt, denn das meiste
geht auch mit CGI, nur umständlicher.
Grund-Infos im Crashkurs:
- Benennt die HTM Endung einer Datei in Eurem
Homepage-Verzeichnis in PHP um, und ihr habt ein PHP-File. Naja, fast. Das
wirft den PHP-Interpreter an, und wenn auf dieser Seite PHP-Code ist, wird er
ihn finden und interpretieren!
- PHP-Code wird innerhalb normalem HTML-Quellcodes mittels der Tags <?php
eingeleitet, bzw. mit ?> beendet. Der Witz ist, das kann an beliebiger Stelle eingefügt
werden, also z. B. auch in den in den <head>-Abschnitt, oder sogar
direkt in ein beliebiges HTML-Tag. Hier ein Beispiel: <a href="<?php echo($eineURL) ?>">
Hier wurde direkt in
den href-Parameter des A-Tags PHP-Code eingefügt, der den Inhalt der
Variablen $eineURL als Ziel an href übergibt. echo()
ist eine Funktion, die Text, HTML-Quellcode
und Variable als HTML ausgibt, ist also gewissermaßen die Schnittstelle zum letztlich
zurückgegebenen HTML-Document.
- Variablen erkennt man am vorangestellten Dollarzeichen ($eineVariable). Das sieht
zunächst etwas kryptisch aus, bietet aber, neben der größeren Übersicht, auch
einen sehr praktischen Vorteil: Variable können direkt in einen String
eingefügt werden. Wo in anderen Programmiersprachen großer Aufwand mit An- und
Ausführungsstrichen und Verknüpfungszeichen wie + oder & getrieben wird,
erscheint hier die Variable ungebrochen im normalen Text-String, z. B. :
echo("Dieser Gruß von $einName an
$nochEinName wird als normaler Satz in HTML angezeigt.")
.
- sehr praktisch ist auch die unkomplizierte Art, Variable
an ein anderes Dokument zu übergeben (in JavaScript nur über Cookies
oder Parent-Frame-Variable möglich, also recht umständlich zu realisieren).
Die zu übergebenden Variablen werden einfach per "?" an die URL der
aufzurufenden Seite angehängt:
http://eineURL/eineSeite.php?eineVariable=einWert&Variable2=Wert2#einLink
Jede Variable hat ihren Wert hinterm
Gleichheitszeichen, mehrere Variable werden mit "&" verbunden, schließlich
kann noch ein Anker (Link, Lesezeichen), das heißt ein Sprungziel innerhalb
der zurückgelieferten Seite mittels "#" angehängt werden. Genial. Die
Variablen stehen dann in der aufgerufenen Seite als $eineVariable sowie
$Variable2 mit den entsprechenden
Werten zur Verfügung.
- Steuerung des Programmverlaufs (Verzweigungen,
Schleifen usw. ist völlig identisch mit JavaScript (C-Syntax), weshalb ich
hier nicht darauf eingehen werde, bzw. nur auf ein JavaScript-Tutorial verweisen würde. Wer
JavaScript (oder Java, oder C++ oder Perl) Kenntnisse hat, muß hier
nichts beachten oder dazulernen.
Ausführliche
PHP-Referenz findet ihr bei:
Ein weiteres Leistungsfähiges Feature von PHP ist
die Verbindung zu Datenbanken, so daß Datenbank-Inhalte interaktiv in die
HTML-Seiten integriert werden können, bzw. Formular-Eingaben problemlos an Datenbanken
übergeben werden können. Das zeige ich am Beispiel MySQL im folgenden Kapitel:
(in Vorbereitung)
Informationen über MySQL bei:
PHP-Referenz:
PHP und JavaScript
Laßt JavaScript, was des JavaScriptes ist.
So ähnlich sprach schon Cäsar. Viele PHP-Scripte versuchen Komplettlösungen zu
bieten, was natürlich für den Webmaster (Homepage-Besitzer) ein Vorteil ist, da er nichts
mehr koordinieren muß, und das Script außerdem für alle Browser kompatibel ist, da es ja
serverseitig interpretiert wird (und nicht durch unterschiedliche
Client-Browser).
Dem stehen aber eine Reihe gravierender Nachteile gegenüber. Der erste
ist die Ausführungsgeschwindigkeit. Im Normalfall ist ein Server (aufgrund der
großen Auslastung) immer langsamer, als ein einzelner Client-Computer. Zudem kann
der Client-Browser Entscheidungen "vor Ort" treffen, während der PHP-Server
Dialoge stets über die enge Daten-Autobahn des Internet führen muß. Für
viele Zwecke also ist JavaScript geeigneter, da schneller und komfortabler als PHP
(auch für den Programmierer, da JavaScript für einige Zwecke sehr
mächtige Funktionen zur Verfügung stellt). z. B. was das Überprüfen von Formular-Eingaben
angeht. JavaScript entdeckt Fehler sofort, kann beim Auswerten der
Formular-Eingaben auf die mächtigen Funktionen des String-Objektes zugreifen,
und Fehleingaben monieren oder automatisch korrigieren.
PHP müßte demgegenüber zunächst das Formular übersandt werden, dann
die Eingabe-Strings mit den komplizierten PHP-String-Funktionen überprüft werden, dann
eine Korrektur-Aufforderung generiert und wieder zurückgesandt werden. Das
geht, ist aber sehr umständlich und langsam. Jede Programmiersprache
sollte sich auf das beschränken, was sie am besten kann!
Also: JavaScript für clientseitige Interaktion und zur Überprüfung von
Formular-Eingaben, PHP für serverseitige Formular-Auswertung und Abrufe aus
Datenbanken. Hier können JavaScript und PHP Hand in Hand arbeiten. Sie können
sogar "verflochten" arbeiten:
JavaScript kann zur Laufzeit Variable generieren, und
über Location.href (als
Anhang mit Fragezeichen, s.
o.) an ein PHP-Script übergeben, und PHP wiederum kann JavaScript-Tags mit
fallspezifischen JS-Funktionen generieren, die dann clientseitig Aufgaben
erledigen. Solche Verflechtungen beider Programmiersprachen sind die schnellste,
komfortabelste und Leistungsfähigste Lösung. Mein
Gästebuch basiert auf solcher Zusammenarbeit, ebenso
wie meine Download-Seiten (
Moon-Applet,
PacMan
).