1. Erläuterungen
1.1. Allgemeines
PHP kann in HTML-Code „eingebettet” werden. Auf diese Weise kann eine Seite primär in HTML geschrieben und gleichzeitig an ausgewählten Stellen durch dynamischen Code ergänzt werden. Dies bietet sich zum Beispiel an, wenn sich einzelne Elemente auf der Seite oft wiederholen (Schleifen) oder wenn viele Unterseiten den selben Code enthalten (Konstanten, includes). Auch Templates können auf diese Weise leicht erstellt werden, um Logik und Darstellung einer Seite so weit wie möglich voneinander zu trennen.
1.2. Voraussetzungen
HTML und PHP-Code können immer miteinander gemischt werden, sofern die Datei vom PHP-Compiler geparset wird. (Ist dies nicht der Fall, dann wird sie als normaler Text zurückgegeben, der PHP-Code wird also nicht ausgeführt.) Bei korrekter Konfiguration des Webservers sollte dies für alle „.php”-Dateien der Fall sein (abgesehen von solchen in Upload-Verzeichnissen und ähnlichen). Um das PHP-Parsing auch für „.html”-Dateien zu aktivieren muss im Apache die folgende Zeile zur .htaccess- oder der entsprechenden vHost-Datei hinzugefügt werden:
Bestehende HTML-Dateien brauchen nicht verändert werden, vorausgesetzt sie enthalten keinen Text, der sonst den Beginn von PHP-Code repräsentiert (siehe Abschnitt Syntax).
1.3. Syntax
Der Beginn von PHP-Code wird — wie üblich in allen PHP-Dateien — durch die Verwendung von „<?php” signalisiert. Das Ende wird mittels „?>” markiert. Start- und Endmarkierung dürfen beliebig oft in einer Datei enthalten sein.
Es gibt zusätzlich auch eine verkürzte Syntax zum Markieren des Beginns von PHP-Code. Sofern diese aktiviert ist kann „<?” statt „<?php” geschrieben werden. Aktiviert werden kann die Kurzform über die php.ini-Datei. In dieser muss der Wert „short_open_tag” auf „1” gestellt werden. Es ist dabei darauf zu achten, dass die Kurzform in Konflikt mit dem typischen Start von XML/XHTML-Dateien steht, zum Beispiel:
2. Beispiele
2.1. Die aktuelle Uhrzeit auf einer Seite anzeigen
Will man die aktuelle Uhrzeit auf einer Seite anzeigen, dann kann folgender Code verwendet werden:
<html> <body> Etwas Beispielcode hier.<br /> Die aktuelle Uhrzeit ist <?php echo date('H:i:s', time()); ?>. </body> </html>
Ausgabe:
<html> <body> Etwas Beispielcode hier.<br /> Die aktuelle Uhrzeit ist 15:10:14. </body> </html>
2.2. Copyright mit Jahr
In diesem Beispiel wird ein Copyright mit dem aktuellen Jahr angezeigt. In reinem HTML müsste die Jahreszahl ständig geändert werden, mit etwas PHP ändert sie sich beim Jahreswechsel von selbst.
<html> <body> <p>Dies ist beispielhafter Inhalt</p> © <?php echo date('Y'); ?> www.beispielseite.de </body> </html>
Ausgabe:
<html> <body> <p>Dies ist beispielhafter Inhalt</p> © 2012 www.beispielseite.de </body> </html>
2.3. Eine Tabelle mit einer Schleife erstellen
In diesem Beispiel wird mittels einer PHP-Schleife eine Tabelle erzeugt, welche alle Quadratzahlen von 0 bis 10 enthält.
<html> <body> Alle Quadratzahlen von 0 bis 10: <table> <thead> <tr> <td>x</td> <td>x hoch zwei</td> </tr> </thead> <tbody> <?php for ($x=0; $x<=10; $x++): ?> <tr> <td><?php echo $x; ?></td> <td><?php echo $x*$x; ?></td> </tr> <?php endfor; ?> </tbody> </table> </body> </html>
Ausgabe der Seite:
<html> <body> Alle Quadratzahlen von 0 bis 10: <table> <thead> <tr> <td>x</td> <td>x hoch zwei</td> </tr> </thead> <tbody> <tr> <td>0</td> <td>0</td> </tr> <tr> <td>1</td> <td>1</td> </tr> <tr> <td>2</td> <td>4</td> </tr> <tr> <td>3</td> <td>9</td> </tr> <tr> <td>4</td> <td>16</td> </tr> <tr> <td>5</td> <td>25</td> </tr> <tr> <td>6</td> <td>36</td> </tr> <tr> <td>7</td> <td>49</td> </tr> <tr> <td>8</td> <td>64</td> </tr> <tr> <td>9</td> <td>81</td> </tr> <tr> <td>10</td> <td>100</td> </tr> </tbody> </table> </body> </html>
2.4. Konstanten in eine Datei auslagern
In diesem Beispiel werden die wichtigsten URLs einer Seite in eine Datei ausgelagert und in dieser als Konstanten gespeichert. Diese Datei kann auf allen Unterseiten eingebunden werden, die dann wiederum die Konstanten nutzen können. Der Vorteil ist, dass die wichtigsten URLs zentral gespeichert sind. Sollte sich eine der URLs einmal ändern, dann muss nur noch eine Datei angepasst werden, statt vieler verschiedener.
Die Datei mit den Konstanten (hier bezeichnet als „myconstants.php”):
<?php // myconstants.php define('CATEGORY_DOGS_URL', 'http://www.example.com/dogs/'); define('CATEGORY_CATS_URL', 'http://www.example.com/cats/'); define('CATEGORY_HIPPOS_URL', 'http://www.example.com/hippos/'); define('CATEGORY_CONTACT_URL', 'http://www.example.com/contact.php'); ?>
Eine Seite, die diese Datei einbindet und die Konstanten verwendet:
<?php include('myconstants.php'); ?> <html> <body> <div> <a href="<?php echo CATEGORY_DOGS_URL ?>">etwas ueber Hunde!</a> <a href="<?php echo CATEGORY_CATS_URL ?>">noch mehr ueber Katzen!</a> <a href="<?php echo CATEGORY_HIPPOS_URL ?>">Ein bisschen ueber Nilpferde</a> </div> <div> example.com <a href="<?php echo CATEGORY_CONTACT_URL; ?>">contact us</a> </div> </body> </html>
Ergebnis der Seite bei Aufruf:
<html> <body> <div> <a href="http://www.example.com/dogs/">etwas ueber Hunde!</a> <a href="http://www.example.com/cats/">noch mehr ueber Katzen!</a> <a href="http://www.example.com/hippos/">Ein bisschen ueber Nilpferde</a> </div> <div> example.com <a href="http://www.example.com/contact.php">contact us</a> </div> </body> </html>