2016-10-06 9 views
-1

私は親の話すファイルに含まれるファイルを持っています。子ファイル内から親ファイルのパスを確実に判断する必要があります。PHPは呼び出し元ファイルのパスを確実に判断します

私の最初の考えは$_SERVER['SCRIPT_FILENAME']でしたが、それは簡単に親ファイルから操作できます。

私が考えたのはgetcwd()でしたが、それは必ずしも動作しません。apacheは実行されたスクリプトのディレクトリを提供しますが、cliまたはcronから実行される場合はそうではありません。

親ファイルを信頼できない場合は、含まれるファイル内からファイルの場所を判断する安全な方法は何ですか?

+0

この値を親の$変数にバインドして、それをインクルードに含めると、定数 '__FILE__'が使用されます。 – JustOnUnderMillions

+0

@JustOnUnderMillions私は親ファイルを信頼できません。 '$ variable'は何でもかまいません。 –

+0

このようにすると、 '<?php $ parent = __ FILE__;あなたができるのは 'child.php'です;) – JustOnUnderMillions

答えて

2

ぶっきらぼうには、直接含まチェーンであなたの「親」のパスをあげる何かを見つけることはできませんが、debug_backtrace()を使用することができます。

<?php 
include('y/y.php'); 

./z.php。

/y/y.phpそして:

$ php z.php 
array(1) { 
    [0]=> 
    array(3) { 
    ["file"]=> 
    string(44) "/home/marc/z/z.php" 
    ["line"]=> 
    int(3) 
    ["function"]=> 
    string(7) "include" 
    } 

}

+0

これは 'Production'のためのものですか? – JustOnUnderMillions

関連する問題