(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pathinfo — Devuelve información sobre una ruta del sistema
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.
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().
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.
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 yPATHINFO_FILENAME
eliminará únicamente la última también (ver el primer ejemplo a continuación).
Nota:
Si
path
no tiene extensión, el elementoextension
no será devuelto (ver el segundo ejemplo a continuación).
Nota:
Si
basename
del argumentopath
comienza con un punto, los caracteres siguientes son interpretados como laextension
, y elfilename
estará vacío (ver el tercer ejemplo a continuación).
Si flags
es utilizado, esta función devolverá
una string que contiene los elementos.
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 resultado del ejemplo sería:
/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']);
?>
El resultado del ejemplo sería algo 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'));
?>
El resultado del ejemplo sería algo 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);
?>
El resultado del ejemplo sería algo similar a:
string(11) "lib.inc.php" string(15) "/www/htdocs/inc"