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

问题描述:

我想获得当前脚本的绝对路径,它实际上是符号链接的。如何获取当前符号链接目录的父目录?

__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 

我如何可以导航了符号链接的目录,而不解决符号链接?

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

您还可以从StackOverflow检查this answer

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

例子:

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

    echo readlink(dirname(__FILE__)); 
?>