realpath

(PHP 4, PHP 5, PHP 7)

realpathDevuelve el nombre de la ruta absoluta canonizado

Descripción

realpath ( string $path ) : string

realpath() expande todos los enlaces simbólicos y resuelve las referencias de caracteres '/./', '/../' y '/' extra, en la ruta de entrada dada por path y devuelve el nombre de la ruta absoluta canonizado.

Parámetros

path

La ruta que va a ser comprobada.

Nota:

Aunque se debe proporcionar una ruta, el valor puede estar en blanco o ser NULL. En estos casos, el valor es interpretado como el directorio actual.

Valores devueltos

Devuelve el nombre de la ruta absoluta canonizado en caso de éxito. La ruta resultante no tendrá componentes de enlaces simbólicos, '/./' o '/../'. Los delimitadores finales, como \ y /, también son eliminados.

realpath() devuelve FALSE en caso de error, p.ej. si el fichero no existe.

Nota:

El script en ejecución debe tener permisios de ejecución en todos los directorios de la jerarquía, de lo contrario realpath() devolverá FALSE.

Nota:

Para sistema de ficheros que no tengan en cuenta las mayúsculas/minúsculas, realpath() podría o no normalizar las mayúsculas/minúsculas de cada carácter.

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.

Historial de cambios

Versión Descripción
5.3.0 Antes de esta versión, si en sistemas *BSD el último componente de path no existía, realpath() no fallaba. Ahora realpath() también falla en este caso.
5.2.1 Antes de esta versión, realpath() devolvía FALSE si path era un string vacío o NULL.

Ejemplos

Ejemplo #1 Ejemplo de 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 realpath() en Windows

En windows realpath() cambiará las rutas del estilo unix al estilo windows.

<?php
echo realpath('/windows/system32');

echo 
realpath('C:\Archivos de programa\\');
?>

El resultado del ejemplo sería:

C:\WINDOWS\System32
C:\Archivos de programa

Ver también

  • basename() - Devuelve el último componente de nombre de una ruta
  • dirname() - Devuelve la ruta de un directorio padre
  • pathinfo() - Devuelve información acerca de la ruta de un fichero