pathinfo
Returns information about a file path
Description
mixed pathinfo
( string $path
[, int $options
= PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME
] )
Note:
For information on retrieving the current path info, read
the section on
predefined reserved variables.
Caution
pathinfo is locale aware, so for it to parse a path
containing multibyte characters correctly, the matching locale must be set using
the setlocale function.
Parameters
-
path
-
The path to be parsed.
-
options
-
If present, specifies a specific element to be returned; one of
PATHINFO_DIRNAME
,
PATHINFO_BASENAME
,
PATHINFO_EXTENSION
or
PATHINFO_FILENAME
.
If options
is not specified, returns all
available elements.
Return Values
If the options
parameter is not passed, an
associative array containing the following elements is
returned:
dirname, basename,
extension (if any), and filename.
Note:
If the path
has more than one extension,
PATHINFO_EXTENSION
returns only the last one and
PATHINFO_FILENAME
only strips the last one.
(see first example below).
Note:
If the path
does not have an extension, no
extension element will be returned
(see second example below).
Note:
If the basename of the path
starts
with a dot, the following characters are interpreted as
extension, and the filename is empty
(see third example below).
If options
is present, returns a
string containing the requested element.
Examples
Example #1 pathinfo Example
<?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"; // since PHP 5.2.0
?>
The above example will output:
/www/htdocs/inc
lib.inc.php
php
lib.inc
Example #2 pathinfo example showing difference between null and no extension
<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>
The above example will output
something similar to:
string(0) ""
Notice: Undefined index: extension in test.php on line 6
NULL
Example #3 pathinfo example for a dot-file
<?php
print_r(pathinfo('/some/path/.test'));
?>
The above example will output
something similar to:
Array
(
[dirname] => /some/path
[basename] => .test
[extension] => test
[filename] =>
)
See Also
- dirname
- basename
- parse_url
- realpath