(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — Retorna la ruta de acceso canónica absoluta
realpath() resuelve todos los enlaces simbólicos, y
reemplaza todas las referencias /./
, /../
y /
de path
luego retorna
la ruta de acceso canónica absoluta así encontrada.
path
La ruta de acceso a verificar.
Nota:
Debe ser proporcionada una ruta de acceso, el valor puede ser una cadena de caracteres vacía. En estos casos, el valor es interpretado como el directorio actual.
Retorna la ruta de acceso canónica absoluta
así encontrada. El resultado no contiene ningún enlace simbólico,
/./
o /../
. Los delimitadores
de fin como \
y /
son igualmente eliminados.
realpath() retorna false
si ocurre un error, por ejemplo
si el fichero no existe.
Nota:
El script que se ejecuta debe tener los permisos de ejecución sobre todos los directorios de la estructura, de lo contrario, la función realpath() retornará
false
.
Nota:
Para los sistemas de archivos insensibles a mayúsculas/minúsculas, realpath() puede o no normalizar la casilla de los caracteres.
Nota:
La función realpath() no funcionará para un fichero que se encuentra dentro de un phar ya que esta ruta sería una ruta de acceso virtual, no una real.
Nota:
En Windows, las uniones y los enlaces simbólicos a los directorios son únicamente extendidos a un nivel.
Nota: Debido a que el tipo integer de PHP es con signo y muchas plataformas usan enteros de 32 bits, algunas funciones de sistema de ficheros pueden devolver resultados inesperados para ficheros que son mayores de 2 GB.
Ejemplo #1 Ejemplo con realpath()
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
?>
El resultado del ejemplo sería:
/etc/passwd /tmp
Ejemplo #2 Ejemplo con realpath() en Windows
En Windows, realpath() cambiará las rutas de estilo Unix a rutas de estilo Windows.
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
El resultado del ejemplo sería:
C:\WINDOWS\System32 C:\Program Files