File And Directory Manipulation In PHP (part 2) - The Right Path (Page 5 of 13 )
In addition to functions that allow you to obtain information on file sizes, permissions and modification times, PHP also offers a number of functions designed to manipulate file and path names, and split a file path into its constituent components. The two most commonly-used ones here are the basename() function, which returns the filename component of a path, and the dirname() function, which returns the directory name component of a path
The following example demonstrates the basename() and dirname() components in action, by splitting a file path into its constituents:
<?php
// set path
$path = "/usr/local/apache/bin/httpd";
// print filename
echo "File is " . basename($path) . "\r\n";
// print directory name
echo "Directory is " . dirname($path) . "\r\n";
?>
Here's the output:
File is httpd
Directory is /usr/local/apache/bin
You can also use the pathinfo() function to obtain this information - this function returns an associative array containing keys for directory name, file name and file extension. Take a look at this next script, which returns this information for the directory holding the currently executing script.
<?php
// parse current file path
$info = pathinfo($_SERVER['PHP_SELF']);
// print info
print_r($info);
?>
Here's the output:
Array
(
[dirname] => /dev/php
[basename] => fs.php
[extension] => php
)
Finally, you can use the realpath() function to translate relative paths into absolute ones, as below:
<?php
// returns /usr/local/lib
echo realpath("/usr/local/apache/bin/../../lib/");
// returns /lib
echo realpath("../../lib");
?>
You can obtain the script's current working directory by combining the
dirname() function with the special $_SERVER['SCRIPT_FILENAME'] variable,
<?php
echo "Current directory is " . dirname($_SERVER['SCRIPT_FILENAME']);
?>
or with the alternative getcwd() function, as below,
<?php
// get current working directory
echo "Current directory is " . getcwd();
?>
or even through creative use of the realpath() function, as below:
<?php
echo "Current directory is " . realpath(".");
?>
Next: Move It >>
More PHP Articles
More By icarus, (c) Melonfire