Denn das "aktuelle Arbeitsverzeichnis" für Cron-Aufträge ist das Verzeichnis, in dem sich Ihre crontab-Datei befindet - daher sind alle relativen Pfade relativ zu DIESEM Verzeichnis.
Der einfachste Weg, dies zu erreichen, ist mit dirname()
Funktion und PHP __FILE__
konstant. Andernfalls müssen Sie die Datei mit neuen absoluten Pfaden bearbeiten, wenn Sie die Datei in ein anderes Verzeichnis oder auf einen Server mit einer anderen Dateistruktur verschieben.
dirname( __FILE__ )
__FILE__
ist eine von PHP definierte Konstante, die den vollständigen Pfad zu der Datei angibt, von der aus sie aufgerufen wird. Auch wenn die Datei eingebunden ist, __FILE__
bezieht sich IMMER auf den vollständigen Pfad der Datei selbst - nicht auf die Datei, die die Einbindung vornimmt.
Also dirname( __FILE__ )
gibt den vollständigen Verzeichnispfad zu dem Verzeichnis zurück, das die Datei enthält - unabhängig davon, von wo aus sie eingebunden wurde und basename( __FILE__ )
gibt den Dateinamen selbst zurück.
Beispiel: Nehmen wir an, "/home/user/public_html/index.php" enthält "/home/user/public_html/ihr_verzeichnis/ihre_php_datei.php".
Wenn Sie anrufen dirname( __FILE__ )
in "your_php_file.php" würden Sie "/home/user/public_html/your_directory" zurückerhalten, obwohl sich das aktive Skript in "/home/user/public_html" befindet (beachten Sie das Fehlen des nachgestellten Schrägstrichs).
Wenn Sie das Verzeichnis der INCLUDING-Datei benötigen, verwenden Sie: dirname( $_SERVER['PHP_SELF'] )
was "/home/user/public_html" zurückgibt und dasselbe ist wie der Aufruf von dirname( __FILE__ )
in der Datei "index.php", da die relativen Pfade die gleichen sind.
Verwendungsbeispiele:
@include dirname( __FILE__ ) . '/your_include_directory/your_include_file.php';
@require dirname( __FILE__ ) . '/../your_include_directory/your_include_file.php';