Given a string containing the path of a file or directory, this function will return the parent directory's path that is levels
up from the current directory.
A path.
On Windows, both slash (/) and backslash (\) are used as directory separator character. In other environments, it is the forward slash (/).
The number of parent directories to go up.
This must be an integer greater than 0.
Returns the path of a parent directory. If there are no slashes in path
, a dot ('.') is returned, indicating the current directory. Otherwise, the returned string is path
with any trailing /component removed.
Added the optional levels
parameter.
dirname()
dirname() operates naively on the input string, and is not aware of the actual filesystem, or path components such as "..".
dirname() is locale aware, so for it to see the correct directory name with multibyte character paths, the matching locale must be set using the setlocale() function.
Since PHP 4.3.0, you will often get a slash or a dot back from dirname() in situations where the older functionality would have given you the empty string.
<?php echo dirname("/etc/passwd") . PHP_EOL; echo dirname("/etc/") . PHP_EOL; echo dirname(".") . PHP_EOL; echo dirname("/usr/local/lib", 2);
The above example will output something similar to:
/etc / (or \ on Windows) . /usr
dirname() operates naively on the input string, and is not aware of the actual filesystem, or path components such as "..".
dirname() is locale aware, so for it to see the correct directory name with multibyte character paths, the matching locale must be set using the setlocale() function.
Since PHP 4.3.0, you will often get a slash or a dot back from dirname() in situations where the older functionality would have given you the empty string.
Check the following change example:
<?php //before PHP 4.3.0 dirname('c:/'); // returned '.' //after PHP 4.3.0 dirname('c:/x'); // returns 'c:\' dirname('c:/Temp/x'); // returns 'c:/Temp' dirname('/x'); // returns '\' ?>
Please login to continue.