我有一个从一个文件夹符号链接到另一个脚本
/var/www/default/index.php
这被链接到
/var/www/mysite/index.php
然而,当我从mysite的调用DIR路径解析为在默认情况下,origial路径。 我怎么让它返回mysite的路径(符号链接文件夹,而不是实际的文件夹)
我有一个从一个文件夹符号链接到另一个脚本
/var/www/default/index.php
这被链接到
/var/www/mysite/index.php
然而,当我从mysite的调用DIR路径解析为在默认情况下,origial路径。 我怎么让它返回mysite的路径(符号链接文件夹,而不是实际的文件夹)
对于Web服务器的请求
目录名($ _ SERVER [ 'SCRIPT_FILENAME'])会给你你所需要的。
如果做不到这一点$ _ SERVER [“PHP_SELF”],甚至可能REQUEST_URI有你所需要的,这取决于您的服务器配置。
对于CLI(命令行)
这不会CLI(命令行)工作,脚本,$ _SERVER由Web服务器添加。
幸运的是它更容易使用CLI脚本很多(因为没有web服务器来做手脚的事情)。
所有你需要的是读取启动脚本的命令行: http://php.net/manual/en/reserved.variables.argv.php 。 第一个参数$ ARGV [0]始终是被用来运行脚本的名称。
如果你想获得与符号连接的电流路径 ,你可以问你的主机操作系统:
$path = exec('pwd');
如果你正在寻找一个命令行脚本的完整悬而未决系统路径,SCRIPT_PATH不足。
php -f symlink/script.php
SCRIPT_FILENAME将包含符号链接/运行script.php
我创建了一个PHP /要旨获取到PHP文件中未解决的路径。
下面是函数的结果:
$ php -f subdir/mysymlink/subdir/mysymlink/subdir/mysymlink/app.php
PWD: /tmp/phpcode
SCRIPT_FILENAME: subdir/mysymlink/subdir/mysymlink/subdir/mysymlink/app.php
___FILE__ : /tmp/phpcode/app.php
getSymlink(): /tmp/phpcode/subdir/mysymlink/subdir/mysymlink/subdir/mysymlink