PHP-Code mit HTML vermischen (Thema: PHP Beispiele)

Wie PHP-Code in einer normalen HTML-Datei eingebettet werden kann

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:

AddType application/x-httpd-php .html .htm

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:

<?xml version="1.0"?>

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:

PHP-Code
<html>
	<body>
		Etwas Beispielcode hier.<br />
		Die aktuelle Uhrzeit ist <?php echo date('H:i:s', time()); ?>.
	</body>
</html>

Ausgabe:

HTML-Code: 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.

PHP-Code
<html>
	<body>
		<p>Dies ist beispielhafter Inhalt</p>
		&copy <?php echo date('Y'); ?> www.beispielseite.de
	</body>
</html>

Ausgabe:

HTML-Code: Ausgabe
<html>
	<body>
		<p>Dies ist beispielhafter Inhalt</p>
		&copy 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.

PHP-Code
<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-Code: Ausgabe
<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-Code: 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-Code
<?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-Code: Ausgabe
<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>	

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung. OK