最初にインクルードファイル内で呼び出されたPHPファイルのパスを取得できますか?
質問
index.php
があり、それが / home / user / public / www
に保存され、 index.php
がファイル inc / app / Foo.class.php
のクラス Foo-> bar()
。
Foo
クラスのbar関数が、このインスタンスのパス / home / user / public / www
を取得したい—グローバル変数を使用したり、変数を渡したりしたくありません。
解決
これにより、実行中のスクリプトのディレクトリが簡単に取得できませんか?
$dir=dirname(これにより、実行中のスクリプトのディレクトリが簡単に取得できませんか?
<*>SERVER["SCRIPT_FILENAME"])
他のヒント
debug_backtrace を使用して、呼び出しパスを確認し、この関数を呼び出しているファイルを取得できます。
短い例:
class Foo {
function bar() {
$trace = debug_backtrace();
echo "calling file was ".$trace[0]['file']."\n";
}
}
getcwd()
は現在の作業ディレクトリを取得します
chdir()
を発行することにより、サードパーティのモジュール、インクルード、または独自のコードによってさまざまな理由で変更できます。
debug_backtrace()
は、デボンが示唆したとおり、あなたが探している答えです。
それを見つけました。 getcwd()。
所属していません StackOverflow