(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — Retourne le chemin canonique absolu
$path
): string|false
realpath() résout tous les liens symboliques, et
remplace toutes les références /./
, /../
et /
de path
puis retourne
le chemin canonique absolu ainsi trouvé.
path
Le chemin à vérifier.
Note:
Un chemin d'accès doit être fourni, la valeur peut être une chaîne de caractère vide. Dans ces cas, la valeur est interprétée comme étant le dossier courant.
Retourne le chemin canonique absolu
ainsi trouvé. Le résultat ne contient aucun lien symbolique,
/./
ou /../
. Les délimiteurs
de fin comme \
et /
sont également supprimés.
realpath() retourne false
si une erreur survient, e.g.
si le fichier n'existe pas.
Note:
Le script qui s'exécute doit avoir les permissions en exécution sur tous les dossiers de la structure, sinon, la fonction realpath() retournera
false
.
Note:
Pour les systèmes de fichiers insensibles à la casse, realpath() peut ou non normaliser la casse des caractères.
Note:
La fonction realpath() ne fonctionnera pas pour un fichier qui se trouve à l'intérieur d'un phar car ce chemin serait un chemin d'accès virtuel, pas un vrai.
Note:
Sur Windows, les jonctions et les liens symbolics aux dossiers sont uniquement étendu d'un niveau.
Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, certaines fonctions relatives au système de fichiers peuvent retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go.
Exemple #1 Exemple avec realpath()
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
?>
L'exemple ci-dessus va afficher :
/etc/passwd /tmp
Exemple #2 Exemple avec realpath() sous Windows
Sous Windows, realpath() changera les chemins de style Unix en chemins de style Windows.
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
L'exemple ci-dessus va afficher :
C:\WINDOWS\System32 C:\Program Files