Es ist sehr merkwürdig, hat irgendjemand jemals mit einer Schlussfolgerung zusammen gefunden?
Manchmal überprüft es auch das Verzeichnis der enthaltenen Datei.
Aber manchmal nicht.
D: \ test \ 1.php
%Vor%D: \ test \ 2.php
%Vor% Dabei steht 3.php
im selben Verzeichnis wie 2.php
.
Das obige funktioniert, aber warum? Das aktuelle Verzeichnis sollte D:\test
sein, aber es kann immer noch 3.php finden, was in D:\test\sub
Weitere Geschichte ( final )
Vor ungefähr einem Jahr bin ich auf dieses Problem gestoßen und habe es dann mit der Hardcoding wie unten beschrieben behoben:
Gemeinsame.php:
%Vor% Dabei steht Config.inc
im selben Verzeichnis wie Common.php
Wenn Sie sich den Quellcode von php in main / fopen_wrappers.c anschauen, finden Sie
%Vor%Dies scheint bedingungslos ausgeführt zu werden und wird daher immer eine Datei im selben Pfad wie das included / datei-öffnende Skript zugänglich machen ... als letzte Wahl nach allen in include_path angegebenen Möglichkeiten. Und nur dann, wenn Sie im include () keinen relativen oder absoluten Pfad definieren.
Er prüft den aktuellen Pfad und die in aufgeführten Verzeichnisse include_path
Sie können phpinfo()
ausführen, um Ihren Include-Pfad anzuzeigen.
Manchmal ist das Verzeichnis der enthaltenen Datei current working directory
und manchmal nicht
Das aktuelle Verzeichnis kann mit getcwd()
Tags und Links include php relative-path