PHP 4.3

11 Einbetten externer Skripte und Funktionen des Dateisystems

Ziel dieser Lerneinheit ist die Vermittlung von Kenntnissen über das Einbetten externer Skripte zur wiederholten Anwendung von Programmteilen. Ferner möchten wir Ihnen zeigen, wie Sie die Datei-Upload-Funktion von PHP einsetzen können und vertiefen anschließend Ihr Wissen im Umgang mit Dateien und Verzeichnissen.

Einbeziehen externer Skripte

Sehr häufig kommt es beim Programmieren vor, dass sich Teile des Programmcodes an mehreren Stellen wiederholen. Sie haben bereits gelernt, dass Sie mit Schleifen und Funktionen Versatzstücke eines Skripts wiederholt ausführen lassen können. Mit dem Einbeziehen externer Skripte ist es nun auch möglich, Skriptbestandteile dateiübergreifend zu verwenden.

Für das Einbetten stehen Ihnen zwei unterschiedliche Funktionen zur Verfügung: include() und require(). Zwischen diesen beiden Funktionen gibt es einen wichtigen Unterschied: Die Funktion require() ersetzt sich bei der Ausführung des Skripts im Arbeitsspeicher des Servers durch den Inhalt der Datei, die einbezogen werden soll.
Wenn Sie require() also innerhalb einer if-Anweisung platzieren würden, würde PHP unabhängig vom Ergebnis der if-Bedingung die require()-Anweisung durch den Inhalt der entsprechenden Datei ersetzen. Unberührt davon bleibt natürlich die Ausführung der Inhalte, die nach wie vor vom Ergebnis der if-Anweisung abhängig ist.
Mit include() eingebettete Dateien hingegen werden bei jeder Anwendung neu geöffnet und von PHP durchlaufen.
require() ist somit theoretisch schneller in der Verarbeitung als include(). Praktisch werden Sie kaum einen Geschwindigkeitsunterschied feststellen.

Wenn PHP auf eine der beiden Funktionen stößt, interpretiert es die in den externen Dateien enthaltenen PHP-Anweisungen nicht automatisch als solche, sondern behandelt sie wie HTML-Elemente. Wenn die PHP-Anweisungen ausgeführt werden sollen, müssen Sie die Anweisungen in der externen Datei in PHP-Start und -Ende-Tags einfassen (<?php ... ?>).

Skriptbeispiel Einbeziehen externer Dateien
<?php

  include("news.php");
  include("news.php");
  require("news.php");
  require("news.php");

?>  


news.php
<?php

  echo "Hallo Welt<br>";

?>

Nach dem Ausführen des Skripts mit den Anweisungen include() und require() sollten Sie im Browserfenster Folgendes sehen:

Browserausgabe
Hallo Welt
Hallo Welt
Hallo Welt
Hallo Welt  
      

Es gibt zwei weitere Funktionen, die es Ihnen ermöglichen, externe Dateien einzubetten. Sie heißen require_once() bzw. include_once() und unterscheiden sich von den vorgestellten Funktionen dadurch, dass die als Parameter angegebenen Dateien nur ein einziges Mal geladen werden können. Weitere Versuche werden von PHP ignoriert. Dies ist im Zusammenhang mit selbstdefinierten Funktionen wichtig. PHP gibt nämlich einen Fehler aus, wenn Sie versuchen, eine Funktion mehrmals zu definieren.

Welche Vorteile bietet Ihnen das Einbetten externer Programmteile?

Das Ausgliedern von Programmteilen in externe Dateien fördert einerseits die Übersichtlichkeit eines komplexen Programms. Andererseits greift ein Vorteil, den Sie im Kontext der Funktionen bereits kennen gelernt haben: wichtige und häufig verwendete Routinen werden an der benötigten Stelle einfach eingebunden, anstatt sie wieder und wieder direkt in den verschiedenen Skripten selbst zu platzieren.

Gerade bei der Entwicklung komplexer dynamischer Websites ist es wichtig, Skripte so zu unterteilen, dass eine Trennung zwischen Darstellung und Programmlogik stattfindet. Sie sparen auf diese Weise Zeit bei der Pflege oder Erweiterung entsprechender Routinen, da diese nicht im Programm "verstreut" liegen, sondern abgegrenzt in gesonderten Dateien vorzufinden sind. So ist es unter Programmierern verbreitet, sich Funktions-Bibliotheken in externen Dateien aufzubauen, auf die alle anderen Skripte des Programms zurückgreifen können und die sich auch in anderen Projekten wiederverwenden lassen. Wenn Sie dann die Funktion einmal ändern wollen, brauchen Sie das nur an einer Stelle zu tun, anstatt durch Dutzende von Kopien zu gehen (was auch sehr fehleranfällig ist!).

Noch ein weiterer Aspekt kommt zum Tragen: Sicherheit. Sie können sensible Skripte (Passwortüberprüfungen, Skripte zum Auslesen und Schreiben von Dateien) jetzt in Verzeichnissen ablegen, die sich oberhalb des htdocs-Verzeichnisses befinden. Da ein Browser nur auf das htdocs-Verzeichnis und alle tieferliegenden Verzeichnisse des Webservers zugreifen kann, besteht nicht die Möglichkeit, Einsicht in geschützte Dateien zu nehmen. Mehr Informationen dazu finden Sie in der letzten Lerneinheit, die sich unter anderem mit dem Thema Sicherheitsmaßnahmen beschäftigt.

Kommentare (0)

Ihr Kommentar

Name