21.2 PHP und HTML
21.2.1 PHP in HTML einbinden
PHP-Skripts können an beliebiger Stelle im HTML-Quelltext eingebunden werden. Das geschieht mit dem Tag:
<?php HIER STEHT DAS SCRIPT; ?>
Alternativ können Sie auch einfach schreiben:
<? HIER STEHT DAS SCRIPT; ?>
Es funktioniert beides. Jede PHP-Befehlszeile wird mit einem Semikolon abgeschlossen. Die Ausgabe eines einfachen Satzes sehen Sie z. B. in unserem »Hallo Welt«-Skript aus Listing 21.1.
PHP können Sie an jeder beliebigen Stelle und so oft im HTML-Dokument einbinden, wie Sie wollen. Das funktioniert auch innerhalb eines HTML-Tags. So können Sie beispielsweise die Hintergrundfarbe einer Tabelle aus einer PHP-Variablen generieren:
<table bgcolor="<? Echo "$farbe" ?>">
An den Browser wird anstelle des ganzen Befehles nur der Inhalt der Variablen $farbe ausgegeben. Der PHP-Befehl wird bereits auf dem Server ausgeführt. In unserem Beispiel muss er nicht mit einem Semikolon abgeschlossen werden, da es sich hier nur um eine einzige Befehlszeile handelt.
21.2.2 Schreibweise von Zahlen und Zeichen
Bei PHP werden zwar detaillierte Datentypen, wie ganze Zahlen oder Fließkommazahlen, nicht vorgegeben. Es wird jedoch in einem Skript zwischen Zeichen (Strings) und Zahlen unterschieden.
Variablen in der einfachen Schreibweise werden auch als Zahl behandelt. <? Echo 100 ?> erzeugt die Ausgabe der Zahl 100. Stehen Variablen oder Zahlen in Anführungszeichen, versteht PHP sie als Zeichenketten. So gibt <? Echo "100" ?> die Zeichenkette 100 aus. Mit Zeichenketten können keine Berechnungen durchgeführt werden.
Datentypen mischen | Auch Vermischungen von Zeichenketten (Strings) und numerischen Werten innerhalb eines Befehles sind möglich und werden häufig eingesetzt. Dafür müssen Sie dem PHP-Interpreter mitteilen, welcher Teil des Befehles als Zeichenkette und welcher als Zahl zu behandeln ist. Bei PHP bewirkt ein Punkt die Addition von Zeichenketten:
<? Echo "Bitte zahlen Sie". 100 ." Euro"; ?>
Mit dieser Schreibweise können Sie Zeichen und Zahlen innerhalb eines einzigen Befehles ausgeben. Als Beispiel soll eine Rechnungssumme ausgegeben und die Bezeichnung »Euro« hinter den Rechenwert gesetzt werden.
<? Echo "Bitte zahlen Sie". $rechnung ." Euro"; ?>
Würden Sie diese Zeichenaddition nicht vornehmen, gäbe PHP eine Fehlermeldung aus. Die Funktionsweise dieser Befehlszeile ist folgendermaßen zu verstehen:
<? (Jetzt kommt ein Befehl für den PHP-Interpreter) Echo (Gib Folgendes aus:) Anführungszeichen (Jetzt kommen Zeichen) Bitte zahlen Sie Anführungszeichen (Jetzt hören die Zeichen auf) Punkt (Hänge das, was als Nächstes kommt, an das Vorherige) $rechnung (Eine Zahl) Punkt (Hänge das, was als Nächstes kommt, an das Vorherige) Anführungszeichen (Jetzt kommen Zeichen) Euro Anführungszeichen (Jetzt hören die Zeichen auf) Semikolon (Befehlszeile ist jetzt zu Ende) ?> (Hier ist das PHP-Skript zu Ende – weiter mit HTML)
Kommata in Berechnungen | Achten Sie bei Berechnungen auf die korrekte Schreibweise des Fließkommas. Ein Komma in einer Zahl muss in PHP als Punkt geschrieben werden. Falsch ist etwa 3,14 ´ 300, richtig 3.14 x 300. Besonders wichtig ist diese korrekte Schreibweise bei Berechnungen durch Benutzereingaben. Der User weiß nicht, wie er eine Zahl schreiben muss. Daher muss eine Benutzereingabe für Berechnungen immer abgefangen und auf falsche Kommasetzung überprüft werden. Am einfachsten ist es, eventuelle Kommata mit einem Skript in Punkte umzuwandeln.
21.2.3 HTML in PHP einbinden
Neben der Einbindung von PHP in HTML ist es natürlich auch möglich, HTML in PHP einzubinden. Mit dem Befehl Echo können Sie auch komplette HTML-Zeilen ausgeben:
<? Echo "<table><tr><td> </td></tr></table>"; ?>
Diese Befehlszeile gibt eine Tabelle aus. Um PHP jetzt zu veranlassen, auch die für Attribute notwendigen Anführungszeichen auszugeben, müssen Sie die folgende Schreibweise anwenden:
<? Echo "<table bgcolor=\"#333366\"><tr><td> </td></tr></table>"; ?>
Der Backslash verhindert, dass der PHP-Interpreter das Anführungszeichen als PHP-Befehl interpretiert. Durch den Backslash wird mitgeteilt, dass das nachfolgende Zeichen einfach als Zeichen zu interpretieren ist.