(PHP 4, PHP 5, PHP 7)
realpath — Retourne le chemin canonique absolu
$path
)
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:
Si un chemin d'accès doit être fourni, la valeur peut être vide ou
NULL
. 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: 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.
Version | Description |
---|---|
5.3.0 |
Avant cette version, si le dernier composant path
n'existe pas, realpath() n'échouera pas
sous les systèmes *BSD dans ce cas.
|
5.2.1 |
Avant cette version, realpath() retournait FALSE
si le paramètre path est une chaîne vide, ou si
vaut NULL .
|
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