2016-06-27 6 views
0

場合によっては、サブディレクトリ(サブディレクトリ:ex:http://example.com/Script/index.php)にスクリプトを挿入する方が好きかもしれません。また、スクリプトをルートディレクトリex:http://example.com/index.phpに挿入する方が好きかもしれません。スクリプトがサブディレクトリ内で動作するかどうかをどのように知っていますか?

スクリプトがサブディレクトリ内にあるかどうかを確認する方法はありますか?

+0

URLまたはファイルのパスを確認しますか?あなたの求めるものは本当にわかりません。多分あなたは '__DIR__'を望んでいますか? –

+0

@ダゴン:ユーザーがスクリプトファイルをサブディレクトリ内に追加したのか、ルートに直接追加したのかをプログラムで知りたい。 '__DIR__'はこの仕事には適していません –

答えて

0

さて、これはかなり簡単なはずです。 __FILE__がシンボリックリンクの場合は、調整が必要です。

$root = $_SERVER['DOCUMENT_ROOT']; 

/** 
* @var bool TRUE if current script is in DOCUMENT ROOT, FALSE otherwise. 
*/ 
$inRoot = __FILE__ == $root . DIRECTORY_SEPARATOR . basename(__FILE__); 

#OR 
$inRoot = dirname($_SERVER['SCRIPT_FILENAME']) == $_SERVER['DOCUMENT_ROOT']; 
+0

ありがとうございます。残念ながら、どちらの場合でも同じ結果が得られます - >' false'です。 –

+0

それは私のために働く。あなたが何か間違っていると確信しています。あなたは '$ _SERVER ['DOCUMENT_ROOT']'の値を見たことがありますか?上記のスクリプトの各部分をデバッグできますか?とにかく、あなたはポイントを持っていると思います! ;) – felipsmartins

+0

'$ _SERVER ['DOCUMENT_ROOT']' = 'C:/プログラムファイル(x86)/ wamp/www' 、' __FILE__' = 'C:\ Program Files(x86)\ wamp \ www \ script \ system \ Router.php'。 –

0

...またはおそらくgetcwd()を試すことができます。成功した場合は現在の作業ディレクトリを返し、失敗した場合はFALSEを返します。

+0

私はあなたに感謝します。しかし、 'getcwd()'とスクリプトをサブディレクトリに使用すると、結果は 'C:\ Program Files(x86)\ wamp \ www \ script'となり、その結果のルートにあるスクリプトが 'C:\ Program Files(x86)\ wamp \ www'になるとします。あなたが2番目の結果で見たように、ルートにはスクリプトがありますが、結果は期待通りに 'false'ではありません –

関連する問題