如何获取当前符号链接目录的父目录?

时间:2015-02-11 10:22:22

标签: php

我想获得当前脚本的绝对路径,它实际上是符号链接的。

__FILE__始终指向真实文件而不是符号链接,而$_SERVER['SCRIPT_FILENAME']指向符号链接。

我想上$_SERVER['SCRIPT_FILENAME']的目录树,但附加/..并调用realpath导航到实际文件的目录树。

这是我正在运行的代码:

print dirname(__FILE__);
print '<br />';
print realpath(dirname(__FILE__) . '/..');
print '<br />';
print $_SERVER['SCRIPT_FILENAME'];
print '<br />';
print realpath(dirname($_SERVER['SCRIPT_FILENAME']) . '/..');

上面的代码输出:

/Users/mridang/Hello/Application
/Users/mridang/Hello
/Applications/MAMP/htdocs/1609/modules/mymodule/ctrl.php
/Users/mridang/Hello

如何在不解析符号链接的情况下向上导航符号链接的目录?

2 个答案:

答案 0 :(得分:2)

据我所知,您可以使用本机PHP函数readlink。这应该解决符号链接。

您还可以从StackOverflow检查this answer

答案 1 :(得分:0)

使用readlink($ path)读取符号链接的目标。您可以检查它是否是与is_link的符号链接:

示例:

<?php
    if (is_link($link)) {
       echo(readlink($link));
    }

    echo readlink(dirname(__FILE__));
?>