|
Übersicht / Seite:
Dateien mit PHP einbindenWie so oft im Leben und nicht minder beim Programmieren einer Anwendung, so gibt es auch beim Einbinden von Dateien die unterschiedlichsten Lösungsansätze und Wege, die nach Rom bzw. zum Erfolg führen. Nachfolgend möchten wir einige der gebräuchlichsten Möglichkeiten kurz vorstellen. Um die Beispiele nachzu- vollziehen, sollte als erstes eine kleine datei.txt mit einem Probetext erstellt werden. Die Textdatei: datei.txt Ich bin die Datei mit der Endung txt und mein Inhalt dient nur zu
Testzwecken. Mein Name spielt keine Rolle, nur meine Dateinamenserweiterung hat eine
wesentliche Bedeutung. Die am häufigsten in PHP-Scripts zum Einbinden verwendete
Funktion ist wohl mit Abstand die Funktion include(), gefolgt von der Funktion require().
Über den Unterschied zwischen den beiden Funktionen wurde bereits sehr viel geschrieben.
Zu diesen Unterschieden gehört, dass die include Funktion beim Auftreten eines Fehlers
nur eine Warnung ausgibt, während die require Funktion eine Fehlermeldung ausgeben
würde, welche die weitere Ausführung der Anwendung abbrechen würde. Weitere
Unterschiede bestehen, wenn include oder require Funktionen innerhalb einer Schleife,
eines if-Statemants oder von eigenen Funktionen zur Anwendungen kommen. Da bisher nicht
selbst die unterschiedlichsten Varianten durchgetestet, sollte dieser Hinweis reichen. Kleines Beispiel: <?php include ("datei.txt"); ?> Nicht ganz einfach ist mitunter nachvollziebar, welche
relativen Pfade in einer Datei angegeben werden müssen, wenn die zu includende Datei in
einem anderen Ordner liegt und in diesem Ordner weitere Dateien, auf welche verwiesen
wird. Hier kann wohl verallgemeinernd davon ausgegangen werden, dass immer die relativen
Pfade von der Datei ausschlaggebend sind, in der die Datei includet wird, so als wäre die
includete Datei ein Bestandteil von dieser. <?php
$meine = "datei.txt";
if (file_exists($meine) and strlen($meine) == 9) {require ($meine);
}
else {echo "Die gesuchte Datei ist nicht vorhanden";
}
?>
Größer werden die Sicherheitslücken, wenn es sich um unterschiedliche Dateien handelt, deren Pfade (dirname) und Dateinamen (basename) aus diesem Grund zum Beispiel per GET übergeben werden. Hier erscheint es ratsam, die eigenen Dateinamen in einem Array aufzunehmen und vor jeder Ausgabe erst einmal mit der Funktion in_array() zu kontrollieren, ob die angeforderte Datei in diesem Array enthalten ist. readfile() Die Verwendung der Funktion include() oder der Funktion require() ist jedoch nur dann erforderlich, wenn es sich bei der einzufügenden Datei um eine PHP-Datei handelt. Bei einer statischen HTML- oder TXT-Seite (wie die datei.txt im obigen Beispiel) ist diese Vorgehensweise nicht erforderlich, hier würde sich eher die Funktion readfile() anbieten. Die Schreibweise unterscheidet sich dabei in keiner Weise von den bereits angeführten Beispielen, nur das die Funktion include() gegen die Funktion readfile() ausgetauscht wird. Beispiel mit readfile(): <?php readfile ("datei.txt"); ?> Wie bei den anderen Funktionen, so können und sollten gegebenenfalls auch bei der Verwendung dieser Funktion Sicherheitsabfragen durchgeführt werden. Die Verwendung von readfile() bringt einen entscheidenden Vorteil in Punkto Sicherheit mit sich, der darin begründet liegt, dass die eingebunden Seiten nicht mit geparst, sondern direkt ausgegeben werden. Die Einschleusung und Ausführung von PHP-Schadcode ist somit nicht ohne Weiteres möglich. file_get_contents() Neben den bisher erwähnten Funktionen und Beispielen bietet PHP noch eine Reihe weitere Funktionen und Möglichkeiten, die sich zum Einbinden von Dateien eignen. Unter anderen liest die Funktion file_get_contents() eine Datei komplett in einen String, der dann weiterverarbeitet oder mit echo oder print direkt ausgegeben werden kann. Beispiel mit file_get_contents(): <?php Der Einsatz von file_get_contents() empfiehlt sich dann zur Einbindung und Ausgabe von Dateien, wenn es die Aufgabenstellung verlangt, zum Beispiel um einen String zu bearbeiten. Im folgenden Beispiel wird mit Hilfe der Funktion str-replace(), welche nach allen Vorkommen eines Teilstrings in einem anderen String sucht und diese ersetzt, nach der Zeichenkette "zu Testzwecken" im String der obigen datei.txt gesucht und diese Zeichenkette durch die Zeichenkette "zum Testen der Funktion" ersetzt. Beispiel mit file_get_contents() und str_replace(): <?php Die vorhandene datei.txt würde nun mit folgendem Wortlaut ausgegeben: Ich bin die Datei mit der Endung txt und mein Inhalt dient nur zum Testen der Funktion. Mein Name spielt........ weiterlesen » Weitere Möglichkeiten, 3, 4, 5 |
Finden und Zukunftsaussichten - Optimierung -
Übersicht Amazon Web
Services Images/Bilder
prüfen |
||||||||||
| Copyright © 2010 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen | ||||||||||||