Home / Get the directory name and filename from a full path name with PHP

Get the directory name and filename from a full path name with PHP

It’s easy to get the filename and directory name components of a full path name with PHP using the dirname(), basename() and pathinfo() functions. The latter also contains the filename extension.

Example full file path

The full file path used in these examples is:

$path = "/var/www/mywebsite/htdocs/images/myphoto.jpg";

Get the directory name with dirname()

PHP’s dirname() function returns just the directory part of the full path. This is done by simply excluding the last section of the full path based on the directory separator (/ on *nix based filesystems and on Windows) and no check is done to see if it’s actually a directory.

echo dirname($path)

will echo

/var/www/mywebsite/htdocs/images

Note that both of the following:

echo dirname("/var/www/mywebsite/htdocs/images/");
echo dirname("/var/www/mywebsite/htdocs/images");

will echo

/var/www/mywebsite/htdocs

Get the filename with basename()

To just get the filename part of the full path use the basename() function. Note again it’s just the last part of the path that is considered to be the filename and no testing is done to see if it’s actually a file.

echo basename($path);

will echo

myphoto.jpg

and

echo basename("/var/www/mywebsite/htdocs/images");

would echo

images

Get the directory name, filename and extension with pathinfo()

PHP’s pathinfo() function returns an associative array containing the basename, dirname, extension and (from PHP 5.2.0) the filename without the extension.

print_r(pathinfo($path));

will echo

Array
(
    [dirname] => /var/www/mywebsite/htdocs/images
    [basename] => myphoto.jpg
    [extension] => jpg
    [filename] => myphoto
)