PHP relativen Pfad einschließen: Fehler beim Einbinden von Dateien beheben
Sie haben zwei Dateien, test.php und connect.php, die sich im Ordner „/“ befinden. root/update/-Verzeichnis. connect.php versucht, config.php aus dem Verzeichnis /root/ einzubinden, indem es die Zeile include „../config.php“ verwendet. Dies führt jedoch zu Fehlern im Zusammenhang mit fehlenden Dateien.
Verstehen des Problems
Das Problem tritt auf, weil der in test.php festgelegte Include-Pfad (set_include_path(".: /root");) umfasst das aktuelle Verzeichnis (.), jedoch nicht das übergeordnete Verzeichnis (das /root/update/-Verzeichnis). Das bedeutet, dass connect.php, wenn es versucht, config.php mit dem relativen Pfad ../config.php einzuschließen, im Stammverzeichnis (/root/) danach sucht, wo es nicht existiert.
Problem lösen
Um dieses Problem zu beheben, haben Sie mehrere Möglichkeiten:
Sie können die Datei mit der Konstante __DIR__ einschließen, die den absoluten Pfad zum Verzeichnis der aktuellen Datei darstellt. Auf diese Weise können Sie auf die Konfigurationsdatei zugreifen, ohne den relativen Pfad angeben zu müssen:
include(dirname(__DIR__).'/config.php');
Sie kann eine Root-Pfadkonstante definieren, um das Root-Verzeichnis für Datei-Includes anzugeben. Dadurch können Sie einen relativen Pfad aus diesem Stammverzeichnis verwenden, ohne den vollständigen Pfad anzugeben:
define('ROOT_PATH', dirname(__DIR__) . '/'); include(ROOT_PATH.'config.php');
While Sie haben erwähnt, dass die Verwendung absoluter Pfade keine Option ist. Wenn möglich, können Sie absolute Pfade verwenden, um die Datei einzuschließen direkt:
include('/root/config.php');
Fazit
Durch die Verwendung von __DIR__, die Definition eines Stammpfads oder die Verwendung absoluter Pfade können Sie das Problem der Dateieinbindung bei Verwendung relativer Pfade lösen innerhalb Ihrer PHP-Skripte.
Das obige ist der detaillierte Inhalt vonWie binde ich Dateien mit relativen Pfaden in PHP korrekt ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!