Devuelve información sobre una ruta del sistema

# pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfo — Devuelve información sobre una ruta del sistema

### Descripción

function pathinfo(string `$path`, int `$flags` = `PATHINFO_ALL`): array|string

pathinfo() devuelve información sobre la ruta `path`, en forma de string o array asociativo, dependiendo del argumento `flags`.

> Nota:

> Para más información sobre la lectura de la ruta actual, consulte la sección sobre las variables predefinidas.

> Nota:

> pathinfo() opera de manera ingenua sobre la cadena de entrada, y no es consciente de los sistemas de archivos actuales, o de los componentes de rutas como "`..`".

> Nota:

> Solo en sistemas Windows, el carácter `\` será interpretado como separador de directorio. En otros sistemas, será tratado como cualquier otro carácter.

Precaución

La función pathinfo() es sensible a la configuración local, por lo tanto, si se desea que analice correctamente una ruta que contenga caracteres de varios bytes, la configuración local correspondiente debe ser definida utilizando la función setlocale().

### Parámetros

`path`

  La ruta a analizar.

`flags`

  Especifica qué elemento será devuelto. Puede pasar una de las constantes `PATHINFO_DIRNAME`, `PATHINFO_BASENAME`, `PATHINFO_EXTENSION` y `PATHINFO_FILENAME`.

  Si `flags` no es especificado, todos los elementos son devueltos.

### Valores devueltos

Si `flags` no es utilizado, esta función devolverá un array asociativo que contiene los siguientes elementos : `dirname`, `basename`, `extension` (si existe), y `filename`.

> Nota:

> Si `path` contiene más de una extensión, `PATHINFO_EXTENSION` devuelve únicamente la última y `PATHINFO_FILENAME` eliminará únicamente la última también (ver el primer ejemplo a continuación).

> Nota:

> Si `path` no tiene extensión, el elemento `extension` no será devuelto (ver el segundo ejemplo a continuación).

> Nota:

> Si `basename` del argumento `path` comienza con un punto, los caracteres siguientes son interpretados como la `extension`, y el `filename` estará vacío (ver el tercer ejemplo a continuación).

Si `flags` es utilizado, esta función devolverá una string que contiene los elementos.

### Ejemplos

Ejemplo #1 Ejemplo con pathinfo()

    <?php
    $path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

    echo $path_parts['dirname'], "\n";
    echo $path_parts['basename'], "\n";
    echo $path_parts['extension'], "\n";
    echo $path_parts['filename'], "\n";
    ?>

El ejemplo anterior mostrará:

    /www/htdocs/inc
    lib.inc.php
    php
    lib.inc

Ejemplo #2 Ejemplo pathinfo() sin extensión

    <?php
    $path_parts = pathinfo('/path/emptyextension.');
    var_dump($path_parts['extension']);

    $path_parts = pathinfo('/path/noextension');
    var_dump($path_parts['extension']);
    ?>

Resultado del ejemplo anterior es similar a:

    string(0) ""

    Notice: Undefined index: extension in test.php on line 6
    NULL

Ejemplo #3 Ejemplo con pathinfo()

    <?php
    print_r(pathinfo('/some/path/.test'));
    ?>

Resultado del ejemplo anterior es similar a:

    Array
    (
        [dirname] => /some/path
        [basename] => .test
        [extension] => test
        [filename] =>
    )

Ejemplo #4 Ejemplo de pathinfo() con desestructuración de array

El argumento `flags` no es una máscara de bits. Solo un valor puede ser proporcionado. Para seleccionar únicamente un conjunto limitado de valores analizados, utilice la desestructuración de array como se muestra a continuación:

    <?php
         ['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
         var_dump($basename, $dirname);
         ?>

Resultado del ejemplo anterior es similar a:

    string(11) "lib.inc.php"
         string(15) "/www/htdocs/inc"

### Ver también

- dirname() - Devuelve la ruta de la carpeta padre
- basename() - Devuelve el nombre del componente final de una ruta
- parse_url() - Analiza una URL y devuelve sus componentes
- realpath() - Retorna la ruta de acceso canónica absoluta

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open