Inclure les chemins absolus et relatifs en PHP

Olorunfemi Akinlua 12 juillet 2022
  1. Chemins absolus et relatifs en PHP
  2. Utilisez include() et dirname() pour inclure les chemins absolus et relatifs en PHP
Inclure les chemins absolus et relatifs en PHP

Que ce soit sur des serveurs ou des PC locaux, le chemin à partir duquel vous exécutez votre programme PHP fait une différence et est important. Si vous exécutez dans le mauvais répertoire, il est important de comprendre comment utiliser les deux types de chemins, relatif et absolu.

Bien que les deux soient importants, nous pouvons souvent utiliser des chemins absolus, en particulier dans le contexte de l’ensemble de l’application PHP plutôt que des chemins absolus.

Cet article explique comment utiliser ou inclure des chemins absolus et relatifs dans PHP.

Chemins absolus et relatifs en PHP

Que ce soit dans une application PHP ou sur nos ordinateurs locaux, le chemin absolu est l’emplacement du fichier ou du répertoire par rapport au répertoire racine du système. Cependant, un chemin relatif pointe vers un emplacement spécifique dans un système de fichiers par rapport au répertoire courant.

Il s’agit d’un chemin absolu sous Unix ou Linux :

/home/user/devs

Sur un PC Windows, le chemin absolu ressemble à ceci :

C:\AMD\Chipset_Software

Cependant, le système de chemin Linux est souvent utilisé pour la plupart des serveurs PHP.

Un chemin relatif, cependant, peut ressembler à ceci :

../devs

L’extrait de code ci-dessus représentera le répertoire parent du répertoire devs, et vous pouvez utiliser le même .. sous Windows. Supposons que vous êtes dans le répertoire C:\Users\HP\Documents ; vous pouvez accéder au répertoire Téléchargements, qui est un enfant de HP, par la commande ci-dessous :

cd ..\Downloads

Utilisez include() et dirname() pour inclure les chemins absolus et relatifs en PHP

Pour accéder au chemin absolu et relatif, nous avons besoin de la fonction dirname() et d’une constante magique nommée __FILE__. La constante magique __FILE__ renvoie le chemin complet et le nom du fichier PHP en cours d’exécution.

La fonction dirname() renvoie le chemin du répertoire parent. Lorsque nous utilisons ensemble les fonctions __FILE__ et dirname(), nous pouvons obtenir le chemin racine absolu vers le fichier que nous traitons, étant donné que le fichier avec lequel nous interagissons via un mot-clé include se trouve dans le même répertoire. .

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

Le résultat du dirname(__FILE__) est :

/home/runner/ScholarlyOvalFirewall

Cependant, supposons que le fichier PHP avec lequel nous interagissons se trouve dans le répertoire parent du répertoire de travail actuel. Dans ce cas, nous pouvons utiliser la constante __DIR__ car elle renvoie le répertoire du fichier courant sans la barre oblique finale.

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

Le résultat du dirname(__FILE__) est :

/home/runner/

Disons que nous avons l’intention de travailler uniquement avec des chemins relatifs, nous pouvons le faire en créant la fonction ci-dessous :

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;

L’argument de la fonction est le nom du fichier PHP, et cela fonctionne en divisant la chaîne de chemin absolu en un tableau via le symbole / et en recherchant le fichier PHP spécifié. Ensuite, la série de ../ est ajoutée à la variable $str pour nous donner le chemin relatif vers la racine.

De plus, nous pouvons définir le chemin racine à l’aide de la fonction dirname(), de la fonction define() et des constantes magiques __DIR__ et __FILE__, selon vos besoins.

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

Le ROOT_PATH est maintenant /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