Home
Navigation
Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen
SEO Welten
Buchempfehlungen
 

Einbinden von Dateien mittels PHP, JavaScript und Ajax

Dateien mir include, requiriere oder readfile einbinden

Übersicht / Seite:

  1. Dateien mit PHP einbinden (Dateien includen oder requirieren)
  2. Weitere Möglichkeiten mit PHP (Dateien mit Schleifen einlesen)
  3. Dateien mit HTML einbinden (mit iFrame oder Object)
  4. Textdateien mit JavaScript einfügen (Beispiele und Lösungsansätze)
  5. Content mit Ajax verarbeiten (kleine Einführung)

Dateien mit PHP einbinden

Wie 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.
Im englischen Sprachraum wird eine Dateinamenserweiterung als filename extension bezeichnet. Mein Kürzel bzw. meine Dateinamenserweiterung txt gibt darüber Auskunft, das es sich bei mir um eine einfache Textdatei handelt. Formatierungen können Sie sich bei mir ersparen, diese gehen leider wieder verloren.

 
include() und require()

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.

Um bei umfangreichen Scripten eine Mehrfacheinbindung zu verhindern, sollten die eng verwandten Funktionen include_once() oder require_once() zur Anwendung kommen. PHP überprüft in diesem Fall, ob eine Datei bereits includet oder requiriert wurde und bindet diese Datei dann kein zweite Mal ein.

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.

Sicherheit: Ein besonderes Kapitel beinhaltet das Thema Sicherheit. Im obigen Beispiel wurde der Pfad der Datei direkt eingesetzt, wodurch Sicherheitslücken klein gehalten werden. Dennoch könnte auch hier eine kleine zusätzliche if-Abfrage verhindern, dass bei Fehlern statt unliebsamer Meldungen eigene Hinweise ausgegeben werden. Im folgenden Beispiel kommen die Funktionen file_exists() und strlen() zum Einsatz. Zuerst wird mit file_exists hier überprüft, ob die angebende Datei vorhanden ist und auf dem eigenen Server liegt. Im Anschluss wird mit strlen überprüft, ob der angegebene Dateiname einschließlich der Endung genau 9 Zeichen lang ist. So wie eines dieser drei Kriterien nicht erfüllt wird, wird statt einer Datei die im Zweig der Else notierte Fehlermeldung ausgegeben.

<?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

$ausgabe = file_get_contents("datei.txt");

echo $ausgabe;

?>

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

$ausgabe = file_get_contents("datei.txt");


$ausgabe = str_replace("zu Testzwecken ", "zum Testen der Funktion ", $ausgabe);

echo $ausgabe;

?>

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........

 
Weitere Beispiele zur Einbindung von Dateien mit Hilfe von PHP und Schleifen finden Sie auf Seite 2 und Beispiele zur Einbindung von Dateien mittels HTML, JavaScript und Ajax auf den sich anschließenden Seiten.

weiterlesen » Weitere Möglichkeiten, 3, 4, 5

 
Navigation

Finden und
gefunden werden ...


- Optimierung -

 

Webcoding

Übersicht


Web Services


Tutorials &
diverse Listings

und vieles mehr...

 

Weitere Themen

Übersicht


Copyright © 2006 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen