1

ハードドライブに次のフォルダー構造があるとします。

/some/dir/
    .
    scripts/
        myfile.php

次に、「/some/dir/」から次のコマンドを実行します。

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

次に、PHP で、コマンドが起動されたフォルダー (つまり、「/some/dir」) を見つけるにはどうすればよいでしょうか?

私はgetcwd()andを試しましshell_exec('pwd')たが、どちらも PHP スクリプトのパス (つまり、/some/dir/scripts) のみを返します。これを行う方法はありますか?

4

1 に答える 1

4

たとえば、$_SERVER['PWD']およびを参照できます。$_SERVER['OLDPWD']

たとえば、サブフォルダーに次の内容のスクリプトtest.phpがあります。./dev

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

したがって、次のことがわかります。

user@host:/var/www/data$ php dev/test.php       
文字列(13) "/var/www/data"
文字列(17) "/var/www/data/dev"

だから、最初のものはあなたが探しているものです。

スクリプトのフル ネームは、通常どおり、__FILE__定数で使用できます。

于 2013-12-26T07:41:44.337 に答える