realpath

(PHP 4, PHP 5, PHP 7, PHP 8)

realpathRetorna la ruta de acceso canónica absoluta

Descripción

realpath(string $path): string|false

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.

Parámetros

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.

Valores devueltos

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.

Ejemplos

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

Ver también

  • basename() - Devuelve el nombre del componente final de una ruta
  • dirname() - Devuelve la ruta de la carpeta padre
  • pathinfo() - Devuelve información sobre una ruta del sistema