说我有一个从'/one/directory/'
到'/two/directory/'
的符号链接。
如果我echo dirname(dirname(\__FILE__))
,则返回'/one/directory/'
。
返回'/two/directory'
的最佳方法是什么?
使用示例:
Vhost 'example.com'
指向`'/ two / directory'
example.com/hello_world.php
<?php echo dirname(dirname(__FILE__)); ?>
退货: '/one/directory'
预期结果: '/two/directory'
答案 0 :(得分:9)
使用readlink
功能? http://php.net/manual/en/function.readlink.php
您可以使用is_link
检查它是否为符号链接:http://php.net/manual/en/function.is-link.php
if (is_link($link)) {
echo(readlink($link));
}
答案 1 :(得分:6)
使用readlink($path)读取符号链接的目标。
<?php
echo readlink(dirname(__FILE__));
?>
答案 2 :(得分:2)
<?php
function getRealFile($path) {
return is_link($path) ? readlink($path) : $path;
}
$path = getRealFile(dirname(__FILE__));
文档:
http://php.net/manual/en/function.is-link.php
http://php.net/manual/en/function.readlink.php
答案 3 :(得分:2)
返回'/ two / directory'的最佳方法是什么?
使用https://github.com/logical-and/symlink-detective 和
<?php
echo SymlinkDetective::detectPath(dirname(dirname(__FILE__)));
将返回'/two/directory'
答案 4 :(得分:-1)
也许使用realpath()? http://php.net/manual/en/function.realpath.php
编辑:readlink似乎是一个更好的答案:)