(PHP 4, PHP 5, PHP 7)
realpath — Retourne le chemin canonique absolu
$path
) : string
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 charactè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: 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