(letzte Änderung an dieser Seite: 06.09.2011)
(letzte Synchronisation der PDF-Präsentation: 02.08.2017)
Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation
Wir können die Inhalte von Dateien in ein PHP-Skript einbinden. Dazu verwenden wir include()
oder require()
.
Der Befehl require('irgendeinedatei.txt')
wird komplett durch den Inhalt der Datei irgendeinedatei.txt ersetzt (gleich bei include(), s.u.).
Solche include-Dateien werden, wie im Beispiel angedeutet, gerne verwendet, um Konfigurationsinformationen wie Datenbankpasswörter und ähnliches zu speichern. Wenn sich beispielsweise die Passwörter ändern, muss man sie nur in einem einzigen Skript ändern. (pro-linux.de – PHP-Workshop)
Wenn ein include
einen Fehler produziert, arbeitet das Skript weiter (und spuckt nur eine Warnung aus) – bei require
bricht es ab (mehr: php.net – Manual zu require).
Das liegt daran, dass bei require
der php-Code ersetzt wird. In einer Schleife wird der Code damit möglicherweise nur einmal ersetzt ($bla = $schleifenvariable . "_einbinden.inc"; require($bla);
. (Beispiel bei dynamic-webpages.de)
Da wir erst mal nur Klassendateien einbinden (und zwar nur einmal), verwenden wir deshalb vorerst nur require_once
. require_once
stellt (im Gegensatz zu require
) sicher, dass eine bereits eingebundene Datei nicht ein weiteres Mal eingebunden werden kann.
Die inkludierte Datei wird als HTML-Code ausgeführt. Wird also PHP-Code inkludiert, muss dieser in der eingebundenen Datei entsprechend gekennzeichnet werden (durch <?php
bzw. ?>
).
Syntax:
PHP-Codeinclude ("datei.txt"); require_once("config.inc.php");
Zum Testen des Includes kann am Schluss noch eine Zeile wie
PHP-Codeecho "Datei erfolgreich eingebunden!<br />\n";
eingefügt werden.
PHP-Code<h1>Überschrift</h1> <?php require_once('include.txt'); echo "<p>Danke.</p>"; ?>
PHP-Code<h1>Überschrift</h1> <?php require_once('include.txt'); echo "<p>Danke.</p>"; ?>
HTML-CodeIch bin die include-Datei include.txt.
PHP-Code<h1>Überschrift</h1> <?php require_once('include.php'); echo "<p>Danke.</p>"; ?>
PHP-Code<?php for ($a=0;$a<10;$a++) { echo $a . "<br />"; } ?>
PHP-Code<?php if (isset($_GET['absenden']) && isset($_GET['sternzeichen'])) { $sternzeichen = $_GET['sternzeichen']; switch ($sternzeichen) { case 'Steinbock': // Anweisungsblock 1 Start $msg1 = "Sie sind ein Steinbock. Ihnen gefällt es, wenn dieser Satz 6 mal ausgegeben wird.<br />"; for ($a=1;$a<=6;$a++) { echo $a . "." . $msg1; } // Anweisungsblock 1 Ende break; case 'Widder': // Anweisungsblock 2 Start echo "Sie sind ein Widder. Als Widder gefallen Ihnen die ungeraden Zahlen. Bitteschön:<br />"; for ($a=1;$a<100;$a=$a+2) { echo $a . " "; } // Anweisungsblock 2 Ende break; case 'Elefant': // Anweisungsblock 3 Start echo "Es gibt kein Sternzeichen \"Elefant\"!!!"; // Anweisungsblock 3 Ende break; default: echo "Bitte geben Sie eines der vorgegebenen Sternzeichen ein."; } } ?> <form action = "<?php echo $_SERVER['PHP_SELF'] ?>" method = "get"> Geben Sie hier Ihr Sternzeichen ein (Steinbock, Widder, Elefant): <input type = "text" name = "sternzeichen" /> <input type = "submit" name = "absenden" /> </form>
PHP-Code<?php // hier kommen die require_once()-Befehle rein ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Startdatei</title> </head> <body> <h1>Hier findet Klassen-Action statt.</h1> <?php class etwasAusgeben { // Attribute private $zufaelligerSpruch; private $zufallszahl; private $sprueche = array( "Ich bin ein lustiger Spruch.", "Morgen regnet es vielleicht.", "Guten Tag, ich bin der Regenmacher." ); // Konstruktor function __construct() { $this->zufallszahl = rand(0, (count($this->sprueche) - 1)); echo "<p>Ich bin der Konstruktor der Klasse etwasAusgeben.<br /> Ich habe eine Zufallszahl gewuerfelt, naemlich " . $this->zufallszahl . "</p>"; } // Methoden public function getZufallszahl() { return $this->zufallszahl; } public function erzeugeZufaelligenSpruch() { return $this->sprueche[$this->zufallszahl]; // alternativ: return $this->sprueche[$this->getZufallszahl()]; } public function spruchAusgeben() { echo $this->erzeugeZufaelligenSpruch(); } } class ueberschriftErzeugen { // Attribute private $text; private $zahl; // Konstruktor function __construct($eineZahl) { if($eineZahl<2) { exit("zahl muss 2 oder groesser sein"); } else { $this->zahl = $eineZahl; } } // Methoden public function zahlenReiheErzeugen() { $ausgabe = ''; for($i=1;$i<=$this->zahl;$i++) { $ausgabe .= $i; } return $ausgabe; } public function ueberschriftKomplettErzeugen() { $ersterteil = "Zahlenkolonnenüberschrift Nummer "; $zweiterteil = $this->zahlenReiheErzeugen(); return $ersterteil . $zweiterteil; } } $spruchgenerator = new etwasAusgeben(); $spruchgenerator->spruchAusgeben(); echo "<hr />"; $ueberschrift = new ueberschriftErzeugen(12); echo "<h1>" . $ueberschrift->ueberschriftKomplettErzeugen() . "</h1>"; ?> </body> </html>