Grundlagen und Methoden zum
Einbinden von Dateien in PHP über include
Sie befinden sich: Home > Php
> include in Php
Wenn Sie eine Website mit PHP erstellen, ist es oft nötig, dass Sie Code aus anderen
Dateien einbinden. Das macht Ihre Webseite übersichtlicher und einfacher zu verwalten.
Das PHP-Kommando include hilft Ihnen dabei. Es erlaubt Ihnen, den
Inhalt einer Programmdatei in eine andere einzufügen.
Stellen Sie sich vor, Sie haben eine Webseite, die aus vielen Teilen wie dem Kopf (Header),
dem Fuß (Footer) und einem Menü besteht. Sie möchten nicht den gleichen Code
auf jeder Seite wiederholen. Hier kommt include ins Spiel. Sie
schreiben den Code für den Kopf, das Menü und den Fuß nur einmal in
separaten Dokument und binden diese dann in Ihre Hauptseite ein.
Beispiel: Nehmen wir an, Sie haben eine Programmdatei namens header.php ,
die den oberen Teil Ihrer Webseite enthält, also den Seitenkopf. In Ihrer Hauptdatei,
zum
Beispiel index.php , können Sie header.php ganz
einfach einbinden:
<?php include 'header.php'; ?>
Mit diesem Befehl wird PHP die Datei suchen und ihren Inhalt dort einfügen,
wo Sie den include Befehl platziert haben.
Wenn diese unter anderem Ihren Website-Titel und Ihr Logo enthält,
erscheinen diese Elemente auf jeder Seite, die header.php einbindet.
Erweiterte Nutzung: Was, wenn Sie nicht nur eine, sondern mehrere
Programmdateien integrieren möchten? Kein Problem! Sie
können include mehrmals verwenden:
<?php
include 'header.php';
include 'menu.php';
include 'footer.php';
?>
Hier binden Sie drei Teile ein: Kopf, Menü und Fuß. Jede dieser Programmdateien
enthält spezifischen Code, der auf jeder Seite Ihrer Webseite wiederkehrt.
Was ist include_once? Manchmal möchten Sie
sicherstellen, dass ein Dokument nur einmal eingefügt wird, auch wenn sie versehentlich
mehrfach aufgerufen wird. Hierfür gibt es include_once . Dieses
Kommando funktioniert wie include , stellt aber sicher, dass das Skript nur
ein einziges Mal eingefügt wird.
Beispiel:
<?php
include_once 'header.php';
include_once 'menu.php';
?>
Wenn header.php bereits durch include_once
integriert wurde, ignoriert PHP weitere include_once Aufrufe für
dieselbe Datei.
Tipps zum Auslagern: Denken Sie daran, Ihre Dateien logisch zu
organisieren. Lagern Sie wiederkehrende Elemente in eigene
Dateien aus. Das macht Ihre Webseite leicht zu aktualisieren und zu warten.
Das Einbinden von PHP-Dateien ist also ein starkes Werkzeug, um Ihre Webseiten effizient und
leicht verwaltbar zu gestalten. Nutzen Sie es, um Ihre Arbeit zu vereinfachen und Ihre
Webseiten schnell zu aktualisieren.
Technische Details
und Fehlerbehandlung beim Einbinden von Dateien mit der PHP Funktion include
Beim Inkludieren von Programmdateien in PHP gibt es einige technische Details und häufige
Fehlerquellen, die Sie kennen sollten. Dies hilft Ihnen, Ihre Webseite effizienter zu
gestalten und Fehler zu vermeiden.
Verwendung von include und require: Es
gibt zwei Hauptbefehle zum Einbinden von
Skript-Dateien: include und require . Der Unterschied liegt
in der Behandlung von Fehlern. include erzeugt eine Warnung, wenn die
Datei nicht gefunden wird, aber das Skript läuft weiter. require hingegen
stoppt das Skript mit einem fatalen Fehler, wenn die Datei fehlt. Dies ist nützlich,
wenn das Fehlen der Datei die gesamte Webseite unbrauchbar macht.
Beispiel für require: Angenommen, Ihre Webseite
benötigt eine Datei config.php , die wichtige Einstellungen enthält.
Wenn diese Datei fehlt, sollte die Webseite nicht weiterlaufen. Hier verwenden Sie:
<?php require 'config.php'; ?>
Wenn config.php nicht vorhanden ist, stoppt PHP die Ausführung
und zeigt einen Fehler an. Dies verhindert, dass die Webseite mit unvollständigen
Einstellungen läuft.
Pfade richtig setzen: Ein häufiges Problem beim Einbinden von
Programmdateien ist der Datei-Pfad. Wenn Sie relative Datei-Pfade verwenden, bezieht sich PHP auf
das aktuelle Verzeichnis des Skripts, das ausgeführt wird. Dies kann zu Fehlern führen,
wenn das Skript von einem anderen Ort aus aufgerufen wird. Um das zu vermeiden, verwenden
Sie absoluten Datei-Pfade oder setzen Sie den include_path in der
Datei php.ini oder mittels der
Funktion set_include_path() .
Beispiel für Pfade setzen: Stellen Sie sich vor, Sie haben eine
Dateistruktur, wo header.php im Ordner includes liegt.
Sie können den Datei-Pfad absolut setzen, indem Sie voran den vollständigen Pfad
angeben:
<?php include $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'; ?>
Hier nutzt das Skript die Server Variable $_SERVER. In dieser ist ein Array
gespeichert. In diesem ist der Key DOCUMENT_ROOT vorhanden zum
Wurzelverzeichnis Ihrer Website führt. So findet PHP die Datei, egal von wo das Skript
aufgerufen wird.
Sicherheitshinweise für include:
Beim Einbinden von Dateien mit include und require sollten Sie wichtige Sicherheitsaspekte beachten:
- Niemals Benutzereingaben direkt verwenden: Benutzereingaben dürfen niemals
ungeprüft in include-Anweisungen verwendet werden, da dies zu Remote File Inclusion (RFI)
führen kann.
- Gefährlich:
include $_GET['file']; // NIEMALS SO MACHEN!
- Sicherer:
// Definierte Dateien in einem Array erlauben
$erlaubte_dateien = ['header', 'footer', 'sidebar'];
$file = $_GET['section'] ?? '';
if (in_array($file, $erlaubte_dateien)) {
include 'templates/' . $file . '.php';
} else {
// Standardseite oder Fehlerseite laden
}
- Schutz sensibler Dateien: Legen Sie Dateien mit sensiblen Informationen
(wie Datenbank-Zugangsdaten) außerhalb des öffentlich zugänglichen Webroot-Verzeichnisses ab.
Umgang mit htaccess: Sie können auch
die .htaccess -Datei nutzen, um den include path bei
Ihrem Webserver zu setzen. Dies ist besonders nützlich, wenn Sie auf die php.ini -Datei
keinen Zugriff haben. In der .htaccess -Datei könnten Sie folgendes
hinzufügen:
php_value include_path ".:/usr/local/lib/php:/mein/eigener/pfad"
Durch diese Zeile fügt PHP den angegebenen Datei-Pfad zu den Orten hinzu, an denen es
nach einzubindenden Dateien sucht.
Fehlerunterdrückung mit dem @-Operator:
In manchen Fällen möchten Sie Fehlermeldungen unterdrücken, die beim Einbinden von Dateien auftreten können.
Dafür können Sie den @-Operator vor include oder require setzen:
<?php
@include 'config.php'; /* Unterdrückt Warnungen, wenn die Datei nicht gefunden wird */
@require 'wichtige_datei.php'; /* Unterdrückt die Warnung, es wird dennoch ein fataler Fehler ausgelöst */
?>
Beachten Sie: Der @-Operator sollte sparsam eingesetzt werden, da er Fehler versteckt,
die eigentlich behoben werden sollten. In Produktivumgebungen kann dies jedoch nützlich sein,
um dem Benutzer keine Fehlermeldungen anzuzeigen.
Behandlung von Datei nicht gefunden-Fehlern: Wenn eine Datei nicht
gefunden wird, gibt PHP standardmäßig eine Warnung aus. Sie können diese
Warnungen abfangen und eine benutzerfreundlichere Nachricht anzeigen lassen. Dies erreichen
Sie durch eine eigene Fehlerbehandlung mit file_exists():
<?php
if (file_exists('important.php')) {
include 'important.php';
} else {
echo 'Die benötigte Datei ist nicht verfügbar.';
}
?>
Hier prüft das PHP-Skript, ob die File existiert, bevor sie integriert wird. Das
vermeidet Fehlermeldungen und macht Ihre Webseite professioneller.
Relative vs. Absolute Pfade:
Bei der Verwendung von include oder require ist es wichtig, zu verstehen, wie Pfade interpretiert werden:
/* Relative Pfade (ausgehend vom aktuellen Verzeichnis) */
/* Sucht im Unterordner "inc" des aktuellen Verzeichnisses */
include 'inc/header.php';
/* Geht eine Ebene nach oben und dann in den Ordner "config" */
include '../config/settings.php';
/* Absolute Pfade (vom Stammverzeichnis des Servers ausgehend) */
/* Vollständiger Serverpfad */
include '/var/www/html/includes/functions.php';
/* Webroot-basierter Pfad */
include $_SERVER['DOCUMENT_ROOT'] . '/includes/nav.php';
In komplexen Projekten empfiehlt es sich, Konstanten für Ihre Basis-Pfade zu definieren:
// In einer zentralen Konfigurationsdatei
define('BASE_PATH', dirname(__FILE__));
define('INCLUDE_PATH', BASE_PATH . '/includes');
// Spätere Verwendung
include INCLUDE_PATH . '/header.php';
Diese Techniken helfen Ihnen, häufige Fehler beim Eingefügen von Dateien zu
vermeiden und Ihre Webseite sicher und zuverlässig zu gestalten. Nutzen Sie sie, um
Probleme proaktiv zu lösen und Ihre Webprojekte erfolgreich umzusetzen.
Wartung und Management von
eingebundenen Dateien
Die Wartung und das Management von inkludierten Dateien in PHP sind wesentlich, um Ihre
Webseite aktuell und funktional zu halten. Das Verwalten dieser Dateien erfordert ein
systematisches Vorgehen, besonders wenn Ihre Webseite wächst und sich entwickelt.
Aktualisieren von eingebundenen Dateien: Aktualisieren Sie regelmäßig
Ihre inkludierten Dateien wie CSS oder HTML-Dokumente. Das stellt sicher, dass Ihre Webseite
modern bleibt und neue Webstandards erfüllt. Zum Beispiel, wenn Sie ein neues
Design-Element einführen wollen, aktualisieren Sie die CSS-Datei und binden diese dann
in Ihre PHP-Seiten ein.
Beispiel für das Aktualisieren einer CSS-Datei: Nehmen wir an, Sie
möchten die Farbe der Überschriften auf Ihrer Webseite ändern. Sie öffnen
Ihre CSS-Datei und fügen folgenden Code hinzu:
h1 {
color: blue;
}
Speichern Sie die Datei und binden den HTML Code in Ihre PHP-Seiten ein:
<link rel="stylesheet" type="text/css" href="styles.css">
Mit dieser Änderung haben alle Überschriften auf den Seiten, die diese CSS-Datei
einarbeiten, nun die Farbe Blau.
Verwalten von Pfaden: Ein korrekter Dokument-Pfad ist entscheidend für
das reibungslose Einfügen von Dateien. Verwenden Sie relative oder absolute Pfade, um
sicherzustellen, dass PHP die Dateien korrekt findet. Bei vielen Seiten ist es ratsam, einen
zentralen Ordner für alle integrierten Dateien zu nutzen.
Beispiel für Pfadverwaltung: Wenn Sie eine Datei config.php haben,
die wichtige Konfigurationen enthält, stellen Sie sicher, dass der Datei-Pfad richtig
gesetzt ist. Wenn die Datei im Ordner config liegt, könnten Sie
folgenden PHP-Befehl verwenden:
require_once($_SERVER['DOCUMENT_ROOT'] . '/config/config.php');
Dieser Befehl bindet die config.php sicher ein, unabhängig davon,
von welchem Skript er aufgerufen wird.
Wiederkehrende Elemente einfügen: Um Ihre Webseite konsistent und
leicht zu verwalten zu machen, verwenden Sie wiederkehrende Elemente wie Webseitenkopf, Webseitenfuß oder
Menüs. Diese Elemente in separate Dateien auszulagern und sie auf verschiedenen Seiten
einzubetten, macht Updates einfach und schnell.
Beispiel für das Einfügen eines Headers: Erstellen Sie eine
Datei header.php , die den oberen Teil Ihrer Webseite enthält. Um
diesen Seitenkopf in Ihrer Hauptseite index.php zu verwenden,
schreiben Sie:
<?php include 'header.php'; ?>
Jedes Mal, wenn Sie den Seitenkopf aktualisieren, wird die Änderung auf allen Seiten
sichtbar, wo Sie die header.php eingebaut haben.
Häufige Fehler vermeiden: Stellen Sie sicher, dass alle Dateien auf
Ihrer Webseite vorhanden sind. Fehlende Dateien können zu Fehlern führen, die die
Funktionalität Ihrer Seite beeinträchtigen. Prüfen Sie die Pfade und die Verfügbarkeit
der Dateien regelmäßig.
Die Verwendung von include kann Auswirkungen auf die Performance Ihrer Website haben. Hier einige Best Practices:
- Zwischenspeicherung (Caching): Bei komplexen Websites mit vielen includes sollten Sie Caching-Mechanismen wie OPCache verwenden, um die Leistung zu verbessern.
- Vermeiden Sie unnötige includes: Binden Sie nur die Dateien ein, die tatsächlich benötigt werden. Zu viele includes können die Ladezeit verlängern.
- Verwenden Sie include_once/require_once mit Bedacht: Diese Funktionen prüfen, ob die Datei bereits eingebunden wurde, was bei vielen Dateien zu Leistungseinbußen führen kann.
- Autoloading statt manuellem Einbinden: Für komplexe Anwendungen und Klassen verwenden Sie PSR-4-konformes Autoloading anstelle von manuellen includes.
Beispiel für einen einfachen Autoloader:
<?php
spl_autoload_register(function ($class_name) {
// Wandelt Namespaces in Verzeichnispfade um
$class_file = str_replace('\\', '/', $class_name) . '.php';
$file = __DIR__ . '/classes/' . $class_file;
if (file_exists($file)) {
require_once $file;
return true;
}
return false;
});
/* Jetzt kann die Klasse direkt verwendet werden, ohne sie explizit einzubinden */
$myObject = new App\Models\User();
?>
Durch diese Praktiken stellen Sie sicher, dass Ihre Webseite effizient verwaltet wird und Sie
schnell auf Änderungen reagieren können. Dies spart Zeit und verhindert Probleme,
die beim Betrieb Ihrer Website auftreten könnten.
Komplettes Beispiel: Modularisierung einer Website mit Include
Um die Vorteile der Modularisierung mit Include besser zu verstehen, betrachten wir ein praktisches
Beispiel einer modularen Website-Struktur:
Projektstruktur:
website/
├── index.php
├── kontakt.php
├── produkte.php
├── includes/
│ ├── config.php
│ ├── functions.php
│ ├── header.php
│ ├── footer.php
│ ├── navigation.php
│ └── sidebar.php
└── assets/
├── css/
├── js/
└── images/
config.php: Enthält die grundlegenden Einstellungen
<?php
// Datenbank-Konfiguration
define('DB_HOST', 'localhost');
define('DB_USER', 'username');
define('DB_PASS', 'password');
define('DB_NAME', 'dbname');
// Website-Informationen
define('SITE_TITLE', 'Meine Webseite');
define('SITE_URL', 'https://www.meine-webseite.de');
// Pfad-Konfigurationen
define('ROOT_PATH', dirname(__DIR__));
define('INCLUDES_PATH', ROOT_PATH . '/includes');
define('ASSETS_PATH', ROOT_PATH . '/assets');
?>
index.php: Die Hauptseite, die die modularen Komponenten einbindet
<?php
// Konfiguration einbinden
require_once 'includes/config.php';
require_once 'includes/functions.php';
// Seitentitel für dieses Dokument
$page_title = 'Startseite';
$meta_description = 'Willkommen auf unserer Webseite!';
/* Header einbinden (enthält den Beginn des HTML-Dokuments) */
include 'includes/header.php';
// Navigation einbinden
include 'includes/navigation.php';
?>
<main class="content">
<section class="main-content">
<h1>Willkommen auf unserer Webseite</h1>
<p>Dies ist der Hauptinhalt der Startseite.</p>
</section>
<?php include 'includes/sidebar.php'; ?>
</main>
<?php
/* Footer einbinden (enthält das Ende des HTML-Dokuments) */
include 'includes/footer.php';
?>
Dieses Beispiel zeigt, wie Sie mit includes eine übersichtliche, wartbare Website-Struktur
aufbauen können. Jede Komponente ist in eine separate Datei ausgelagert, was die Entwicklung
und Aktualisierung deutlich vereinfacht.
Zusammenfassung: Include in PHP
Das Einbinden von Dateien mit PHP ist ein wesentlicher Bestandteil der Webentwicklung und bietet
zahlreiche Vorteile:
- Verbesserte Codeorganisation durch die Aufteilung in logische Module
- Erhöhte Wartbarkeit, da Änderungen nur an einer Stelle vorgenommen werden müssen
- Bessere Wiederverwendbarkeit von Code-Komponenten in verschiedenen Projekten
- Möglichkeit zur Modularisierung von Projekten, wodurch komplexe Anwendungen überschaubarer werden
Vergessen Sie nicht, die wichtigsten Regeln zu beachten:
- Verwenden Sie
require , wenn die Datei essentiell für Ihre Anwendung ist
- Nutzen Sie
include , wenn die Anwendung auch ohne die Datei weiter funktionieren kann
- Setzen Sie
include_once oder require_once ein, wenn Sie sicherstellen müssen, dass eine Datei nur einmal eingebunden wird
- Achten Sie auf sichere Pfadangaben und vermeiden Sie dynamische Einbindung von nicht überprüften Dateien
- Organisieren Sie Ihre Dateien in einer logischen Struktur, die die Wartung erleichtert
Mit diesem Wissen sind Sie nun bestens gerüstet, um PHP-Dateien effektiv einzubinden und modulare,
wartbare Webanwendungen zu entwickeln.
weiter Was ist ein
Array?
|