Schließen Sie absolute und relative Pfade in PHP ein

Olorunfemi Akinlua 30 Januar 2023
  1. Absolute und relative Pfade in PHP
  2. Verwenden Sie include() und dirname(), um absolute und relative Pfade in PHP einzuschließen
Schließen Sie absolute und relative Pfade in PHP ein

Ob auf Servern oder lokalen PCs, der Pfad, von dem aus Sie Ihr PHP-Programm ausführen, macht einen Unterschied und ist wichtig. Wenn Sie im falschen Verzeichnis ausgeführt werden, ist es wichtig zu verstehen, wie die beiden Arten von Pfaden, relativ und absolut, verwendet werden.

Obwohl beide wichtig sind, verwenden wir möglicherweise eher absolute Pfade als absolute Pfade, insbesondere im Kontext der gesamten PHP-Anwendung.

Dieser Artikel erklärt, wie man absolute und relative Pfade in PHP verwendet oder einbezieht.

Absolute und relative Pfade in PHP

Ob innerhalb einer PHP-Anwendung oder auf unseren lokalen Computern, der absolute Pfad ist der Datei- oder Verzeichnisspeicherort relativ zum Stammverzeichnis des Systems. Ein relativer Pfad zeigt jedoch relativ zum aktuellen Verzeichnis auf einen bestimmten Ort in einem Dateisystem.

Dies ist ein absoluter Pfad auf einem Unix oder Linux:

/home/user/devs

Auf einem Windows-PC sieht der absolute Pfad so aus:

C:\AMD\Chipset_Software

Für die meisten PHP-Server wird jedoch häufig das Linux-Pfadsystem verwendet.

Ein relativer Pfad kann jedoch etwa so aussehen:

../devs

Das obige Code-Snippet stellt das übergeordnete Verzeichnis des Verzeichnisses devs dar, und Sie können dasselbe .. unter Windows verwenden. Angenommen, Sie befinden sich im Verzeichnis C:\Users\HP\Documents; Sie können mit dem folgenden Befehl zum Download-Verzeichnis wechseln, das ein untergeordnetes HP ist:

cd ..\Downloads

Verwenden Sie include() und dirname(), um absolute und relative Pfade in PHP einzuschließen

Um auf den absoluten und relativen Pfad zuzugreifen, benötigen wir die Funktion dirname() und eine magische Konstante namens __FILE__. Die magische Konstante __FILE__ gibt den vollständigen Pfad und Namen der ausgeführten PHP-Datei zurück.

Die Funktion dirname() gibt den Pfad des übergeordneten Verzeichnisses zurück. Wenn wir die Funktionen __FILE__ und dirname() zusammen verwenden, können wir den absoluten Root-Pfad zu der Datei erhalten, die wir bearbeiten, vorausgesetzt, die Datei, mit der wir über ein include-Schlüsselwort interagieren, befindet sich im selben Verzeichnis .

include(dirname(__FILE__).'/functions.php');

Das Ergebnis von dirname(__FILE__) ist:

/home/runner/ScholarlyOvalFirewall

Angenommen, die PHP-Datei, mit der wir interagieren, befindet sich im übergeordneten Verzeichnis des aktuellen Arbeitsverzeichnisses. In diesem Fall können wir die Konstante __DIR__ verwenden, da sie das Verzeichnis der aktuellen Datei ohne den abschließenden Schrägstrich zurückgibt.

include(dirname(__DIR__).'/functions.php');

Das Ergebnis von dirname(__FILE__) ist:

/home/runner/

Angenommen, wir beabsichtigen, nur mit relativen Pfaden zu arbeiten, können wir dies tun, indem wir die folgende Funktion erstellen:

function relativepath($to){
    $a=explode("/",dirname(__FILE__));
    $index= array_search("$to",$a);
    $str="";
    for ($i = 0; $i < count($a)-$index-2; $i++) {
        $str.= "../";
    }
    return $str;
    }

$st = relativepath('main.php');
echo $st;

Das Argument der Funktion ist der Name der PHP-Datei und funktioniert, indem der absolute Pfad-String über das Symbol / in ein Array zerlegt und nach der angegebenen PHP-Datei gesucht wird. Danach wird die Reihe von ../ an die Variable $str angehängt, um uns den relativen Pfad zur Wurzel zu geben.

Außerdem können wir den Stammpfad je nach Bedarf mit der Funktion dirname(), der Funktion define() und beliebigen magischen Konstanten __DIR__ und __FILE__ definieren.

define('ROOT_PATH', dirname(__DIR__) . '/');

Der ROOT_PATH ist jetzt /home/runner.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn