【问题标题】:How to find the folder from which a PHP command line script was launched?如何找到启动 PHP 命令行脚本的文件夹?
【发布时间】:2013-12-26 07:35:56
【问题描述】:

假设我的硬盘上有以下文件夹结构:

/some/dir/
    .
    scripts/
        myfile.php

然后从'/some/dir/',我运行以下命令:

/some/dir/$ php scripts/myfile.php

那么,在 PHP 中,我怎样才能找到启动命令的文件夹(即 '/some/dir')?

我尝试过使用 getcwd()shell_exec('pwd'),但它们都只返回 PHP 脚本的路径(即 /some/dir/scripts)。知道怎么做吗?

【问题讨论】:

  • /usr/share/nginx/www/stackoverflow/test.php test.php /usr/share/nginx$ php www/stackoverflow/test 中的代码.php 它返回 /usr/share/nginx 它正在工作你想要的

标签: php command-line command-line-interface pwd working-directory


【解决方案1】:

例如,您可以参考$_SERVER['PWD']$_SERVER['OLDPWD']

例如,我在 ./dev 子文件夹中有脚本 test.php,其内容:

var_dump($_SERVER['PWD'], $_SERVER['OLDPWD']);

所以,你可以看到:

user@host:/var/www/data$ php dev/test.php 字符串(13)“/var/www/data” 字符串(17)“/var/www/data/dev”

所以,第一个就是你要找的。​​p>

像往常一样,脚本全名将在__FILE__常量中提供。

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多