Websiteentwicklung: PHP: Grundlagen
Aus Wikibooks
[Bearbeiten] PHP Tags
PHP-Scripte sind reine Textdateien (auch plaintext genannt), die mit jedem einfachen Text-Editor-Programm erstellt werden können. Die Scripte müssen jedoch eine bestimmte Endung (Erweiterung oder auch Extension) aufweisen, um vom Webserver als solche erkannt zu werden. Welche Endungen das sind, ist nicht festgelegt und kann über den Webserver konfiguriert werden. Üblich sind die Erweiterungen .php, .phtml, .php4 oder auch .php5. Oft benutzt man die Versionsnamen als Endung, wenn auf dem Server aus Kompatibilitätsgründen zwei (z.B. PHP 4 & 5) PHP Versionen installiert sind und diese dann durch die Endung unterschieden werden.
Ein PHP-Script wird oft in eine HTML-Datei eingebunden. Das heißt irgendwo in der Datei kann ein PHP-Block geöffnet und wieder geschlossen werden. Bevor der Webserver die HTML-Datei ausliefert, reicht er sie an den PHP-Parser weiter, der dann die PHP-Blöcke abarbeitet.
Einen PHP-Block kann man mit folgenden Tags öffnen bzw. schließen:
<?php ... ?>(Abhängig von.. nichts)<script language="php">...</script>(Abhängig von.. nichts)<?...?>(Abhängig von.. short-open-tags)<?= ... ?>als eine Kurzform von<? echo ...; ?>(Abhängig von.. short-open-tags)<% ... %>(Abhängig von.. asp-tags)<%= ... %>als eine Kurzform von<% echo ...; ?>(Abhängig von.. asp-tags)
Der PHP-Parser erkennt diese Tags und arbeitet die PHP-Befehle zwischen diesen Tags ab. Man sollte die erste Form benutzen (<?php ... ?>) da diese von allen Servern interpretiert werden kann, die anderen hängen von einer PHP Einstellung ab. Außerdem ist die Schreibweise <?php ... ?> XML-konform und schon aus diesem Grund zu empfehlen.
Eine Beispieldatei könnte so aussehen.
<?php echo "Hallo Welt!"; ?>
Ausgabe:
Hallo Welt!
So sieht ein Script in einer reinen PHP-Datei aus. Wenn Sie aber PHP-Code in eine HTML-Datei schreiben wollen, geht das so:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <title>Eine PHP-Testseite</title> </head> <body> <?php echo "<p>Eingebetteter PHP-Code</p>"; ?> </body> </html>
Ausgabe im Browser (für den Benutzer sichtbar):
Eingebetteter PHP-Code
Obwohl der PHP-Code innerhalb eines HTML-Codes steht, muss die Datei auf .php enden, damit der Parser auch die Datei bzw. den PHP-Code in dieser Datei abarbeitet, wobei das von den Einstellungen des Servers abhängig ist. So kann man auch erzwingen, dass eine Datei geparst wird, die z.B. auf .htm endet, selbst wenn sie keinen PHP-Code enthält.
[Bearbeiten] Header und Content
Beim Aufruf einer Internetseite bekommt der Browser (bzw. ein ähnliches Programm das mit HTTP arbeitet) zwei Teile zugesandt. Einmal ist das der Header und einmal der Content.
- Header
- Die Daten, die in diesem Bereich stehen, beschreiben den folgenden Content. Hier sind Informationen wie Dateigröße und Dateityp hinterlegt. Teile des Headers könnten wie folgt aussehen:
Content-Type: text/html Content-Size: 4356
- Content
- Hier befindet sich der eigentliche Inhalt, mit dem der Browser arbeitet. Je nach den Daten in den Headern führt der Browser eine entsprechende Aktion aus. HTML-Daten werden interpretiert, Bild-Daten werden angezeigt, ZIP-Daten werden gespeichert...
Mit PHP ist es möglich beide Teile zu verändern, wenn dies denn Sinn macht. Dabei muss man die Reihenfolge beachten, in der man diese Teile verändert. Man darf die Headerangaben nur dann verändern, wenn man noch keinen Inhalt/Content erzeugt hat. Dies ist z.B. bei Cookies wichtig, da Cookies Headerangaben sind. Oder auch, wenn man mit PHP Bilder erzeugen möchte. Auch HTML-Code gehört zum Content. Wenn also außerhalb von PHP HTML-Code ausgegeben wird (weil z.B. PHP in HTML-Code eingebettet wurde) ist es nicht mehr möglich den Headerteil zu verändern. Dies wird spätestens anhand der Fehlermeldung Warning: Cannot add header information - headers already sent ... deutlich.

