include in Php
Sie befinden sich: Home > Php
> include in Php
Die grundlegende Aufgabe eines include(); in PHP lässt sich als das Einbinden
von Quellcode beschreiben. Beim Aufruf dieser Funktion geschieht nichts anderes,
als das der im Funktionsaufruf angeführte Dateiname, bzw. deren Inhalt in die
aufrufende Ursprungsdatei eingebunden wird.
Das klingt zunächst ungewöhnlich da der Quellcode der includierten Datei
theoretisch auch neu geschrieben werden könnte, erleichtert aber die Arbeit, wenn
zum Beispiel ein anderes Script den Inhalt der Datei sessionspezifisch ändert.
Dies kann vorkommen, wenn man für unterschiedliche User unterschiedliche PHP -
Scripts verwenden möchte oder sogar muss.
Eine andere Anwendungsart ist dann von Nutzen, wenn komplette fremde
Dateisegmente verwendet werden sollen, die ggf. direkt von einem Server geholt
werden sollen. Durch die include(); Funktion ist es möglich große Projekte in
Module zu unterteilen, die dann von verschiedenen Personen zeitgleich bearbeitet
werden können, und denen lediglich die Schnittstellen der Module bekannt sein
müssen, nicht jedoch der komplette Quellcode.
Inhalt von der Datei vars.php
1 <?php
2 $farbe = "grün";
3 $frucht = "apfel";
4 ?>
|
Inhalt von der Datei test.php
1 <?php
2 echo "Ein $farbe $frucht"; // Ausgabe "Ein"
3
4 // Bildlich gesprochen steht jetzt
5 // an dieser Stelle der Inhalt der
Datei vars.php
6
7 include "vars.php";
8 echo "Ein $farbe $frucht"; // Ausgabe "Ein grüner apfel"
9 ?>
|
Es ist extrem wichtig die Einstellungen des sogenannten "Include Pfades" zu
kennen, da PHP zunächst die Datei, welche wie im ersten Beispiel angegeben, im
include(); angegeben ist, im Arbeitsverzeichnes des Scriptes suchen wird, danach
erst im PHP - Heimverzeichnis.
PHP erlaubt es innerhalb der Funktion include(); Pfade sowie IP Adressen
anzugeben. Wichtig ist das der Pfad local dann immer vom Stammverzeichnis aus
ausgehend angegeben werden sollte. Ein weiterer wichtiger Punkt der überprüft
werden muss, besteht in der Tatsache das bei einem Parser Fehler in der
includierten Datei das aufrufende Script keinen Fehler ausgeben wird, und auch
nicht abgebrochen wird, selbst wenn es ein sogenannter FATAL_ERROR ist.
Sollte ein Php Fehler bei der Verwendung von include(); vorkommen, kann man mit der PHP
Funktion file_exists() prüfen, ob die inkludierte Datei wirklich vorhanden ist.
Dadurch kann man sicherstellen, dass man mit include() kein Php Fehler generiert.
Sicherheits Hinweis: Sollten Sie im Pfad zu der Datei oder im
Dateiname eine Variable verwenden, sollten Sie immer mit file_exists() überprüfen ob
die Datei existiert. Zusätzlich sollte immer ein absoluter Pfad angegeben werden, damit
keine HTTP Adresse eingeschleust werden kann.
Noch wichtiger ist die Deklaration der in der includierten Datei verwendeten
Variablen. Folgendes Beispiel verdeutlicht dies im Zusammenhang mit der
Deklaration einer Funktion.
1 <?php
2 function eins(){
3 global $farbe;
4 include "vars.php";
5 echo "Ein $farbe $frucht";
6 }
7 /* vars.php wird innerhalb der Funktion eins
aufgerufen *
8 * $frucht ist definitiv nicht
außerhalb von eins verfügbar *
9 * $farbe hingegen ist global
verfügbar, da sie explizit als *
10 * "global" deklariert wurde */
11
12 eins(); // Ausgabe "Ein grüner Apfel"
13 echo "Ein $farbe $frucht"; // Ausgabe "Ein grüner "
14 ?>
|
Dieses Beispiel soll nicht dazu verleiten prinzipiell alle Variablen, egal ob
innerhalb eines include(); oder nicht, allgemein als "global" zu definieren,
soll aber zeigen das hier Fehler lauern können die extrem schwer zu finden sind,
da der Fehler selber in einer vollkommen anderen Datei zu suchen ist, und nicht
zum Abbruch des Scriptes führen wird.
Um dieses Problem zu umgehen, kann man die fast equivalente Funktion
require(); verwenden, die sowohl bei einem Parser-, wie auch FATAL - Error das
Script beendet, und eine Fehlermeldung generiert, und diese
ausgibt.
weiter Was ist ein
Array?
|