获取symlink'd php脚本的当前目录,而不是实际的PHP脚本

Dar*_*own 11 php directory symlink

我有一个从一个文件夹符号链接到另一个文件夹的脚本

/var/www/default/index.php
Run Code Online (Sandbox Code Playgroud)

符号链接到

/var/www/mysite/index.php
Run Code Online (Sandbox Code Playgroud)

但是当我从mysite 调用DIR时,路径会在默认情况下解析为原始路径.如何让它返回mysite路径(符号链接的文件夹,而不是实际的文件夹)

Rob*_*bie 13

对于Web服务器请求

dirname($ _ SERVER ['SCRIPT_FILENAME'])将为您提供所需的信息.

失败的$ _SERVER ['PHP_SELF']甚至REQUEST_URI都可能满足您的需求,具体取决于您的服务器配置.

对于CLI(命令行)

这不适用于cli(命令行)脚本,因为Web服务器添加了$ _SERVER.

幸运的是,使用cli脚本会更容易(因为没有Web服务器可以搞乱).

您只需要阅读启动脚本的命令行:http://php.net/manual/en/reserved.variables.argv.php.第一个参数$ argv [0]始终是用于运行脚本的名称.

  • 这不适用于CLI脚本. (2认同)