# pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfo — Retourne des informations sur un chemin système

### Description

pathinfo(string `$path`, int `$flags` = `PATHINFO_ALL`): array|string

pathinfo() retourne des informations sur le chemin `path`, sous forme de chaine ou de tableau associatif, ceci dépend du paramètre `flags`.

> Note:

> Pour plus d'informations sur la lecture du chemin courant, lisez la section sur les variables prédéfinies.

> Note:

> pathinfo() opère naivement sur la chaîne d'entrée, et n'est pas conscient des systèmes de fichiers actuel, ou des composants de chemins tel que "`..`".

> Note:

> Sur les systèmes Windows uniquement, le caractère `\` sera interprété comme un séparateur de répertoire. Sur les autres systèmes, il sera traité comme n'importe quel autre caractère.

Attention

La fonction pathinfo() est sensible à la configuration locale, aussi, si vous voulez qu'elle analyse correctement un chemin contenant les caractères sur plusieurs octets, la locale correspondante doit être définie en utilisant la fonction setlocale().

### Liste de paramètres

`path`

  Le chemin à analyser.

`flags`

  Spécifie quel élément sera retourné. Vous pouvez passer l'une des constantes `PATHINFO_DIRNAME`, `PATHINFO_BASENAME`, `PATHINFO_EXTENSION` et `PATHINFO_FILENAME`.

  Si `flags` n'est pas renseigné, tous les éléments sont retournés.

### Valeurs de retour

Si `flags` n'est pas utilisé, cette fonction retournera un tableau associatif contenant les éléments suivants : `dirname`, `basename`, `extension` (s'il y en a), et `filename`.

> Note:

> Si `path` contient plus d'une extension, `PATHINFO_EXTENSION` retourne uniquement le dernier et `PATHINFO_FILENAME` va supprimer uniquement le dernier également (voir le premier exemple ci-dessous).

> Note:

> Si `path` n'a pas d'extension, l'élément `extension` ne sera pas retourné (voir le second exemple ci-après).

> Note:

> Si `basename` du paramètre `path` commence par un point, les caractères suivants sont interprétés comme l' `extension`, et le `filename` sera vide (voir le troisième exemple ci-dessous).

Si `flags` est utilisé, cette fonction retournera une chaîne de caractères contenant les éléments.

### Exemples

Exemple #1 Exemple avec pathinfo()

`<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>`

L'exemple ci-dessus va afficher :

    /www/htdocs/inc
    lib.inc.php
    php
    lib.inc

Exemple #2 Exemple pathinfo() sans extension

`<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>`

Résultat de l'exemple ci-dessus est similaire à :

    string(0) ""

    Notice: Undefined index: extension in test.php on line 6
    NULL

Exemple #3 Exemple avec pathinfo()

`<?php
print_r(pathinfo('/some/path/.test'));
?>`

Résultat de l'exemple ci-dessus est similaire à :

    Array
    (
        [dirname] => /some/path
        [basename] => .test
        [extension] => test
        [filename] =>
    )

Exemple #4 Exemple de pathinfo() avec déréférencement de tableau

Le paramètre `flags` n'est pas un masque de bits. Seule une valeur peut être fournie. Pour sélectionner uniquement un ensemble limité de valeurs analysées, utilisez la déstructuration de tableau comme ceci :

`<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
var_dump($basename, $dirname);
?>`

Résultat de l'exemple ci-dessus est similaire à :

    string(11) "lib.inc.php"
         string(15) "/www/htdocs/inc"

### Voir aussi

- dirname() - Renvoie le chemin du dossier parent
- basename() - Retourne le nom de la composante finale d'un chemin
- parse_url() - Analyse une URL et retourne ses composants
- realpath() - Retourne le chemin canonique absolu