Say I have a symlink from \'/one/directory/\'
to \'/two/directory/\'
.
If I echo dirname(dirname(\\__FILE__))
, it returns
Maybe with realpath() ? http://php.net/manual/en/function.realpath.php
Edit : readlink seems to be a better answer :)
<?php
function getRealFile($path) {
return is_link($path) ? readlink($path) : $path;
}
$path = getRealFile(dirname(__FILE__));
Documentation:
http://php.net/manual/en/function.is-link.php
http://php.net/manual/en/function.readlink.php
What is the best method to return '/two/directory'?
Use the https://github.com/logical-and/symlink-detective and
<?php
echo SymlinkDetective::detectPath(dirname(dirname(__FILE__)));
will return '/two/directory'
Use readlink($path) to read the target of symbolic link.
<?php
echo readlink(dirname(__FILE__));
?>
Use the readlink
function? http://php.net/manual/en/function.readlink.php
You can check if it is a symlink with is_link
: http://php.net/manual/en/function.is-link.php
if (is_link($link)) {
echo(readlink($link));
}