(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pathinfo — Retourne des informations sur un chemin système
$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.
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().
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.
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 etPATHINFO_FILENAME
va supprimer uniquement le dernier également (voir le premier exemple ci-dessous).
Note:
Si
path
n'a pas d'extension, l'élémentextension
ne sera pas retourné (voir le second exemple ci-après).
Note:
Si
basename
du paramètrepath
commence par un point, les caractères suivants sont interprétés comme l'extension
, et lefilename
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.
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"