ディレクトリルートがあります:
index.php
includes/
template.php
testfile.php
phpFiles/
processInput.php
testfile.php
index.php:
require_once("includes/template.php");
テンプレート.php:
require_once("includes/phpFiles/processInput.php")
プロセス入力.php:
require_once("testfile.php")
require_once("../testfile.php")
このコードは、index.php を実行すると機能しますが、もちろん、template.php を実行すると機能しません。
ご覧のとおり、index.php には通常どおり template.php が含まれています。しかし、template.php では、index.php があるディレクトリにいるかのようにインクルードする必要があります。しかし、processInput.php では、processInput.php があるディレクトリにいるかのようにインクルードします。
インクルード パスが常に必要なファイルのディレクトリになるように修正するにはどうすればよいですか? 2 番目のインクルード ファイルには、要求されたファイルと同じインクルード パスがありますが、次のファイルにはありません。
ご協力いただきありがとうございます!
編集: 奇妙なことは、クラス フォルダーにクラスを含めたことです。また、パスが相対パスであっても、想定どおりに他のファイルが含まれていました。なぜこれが起こるのですか?どうすれば修正できますか?
非常に重要な編集:これはすべて、私の例では、includes/phpFiles/processInput.php に含めると同じディレクトリにファイルが含まれているためであることに気付きました。これがまさにその理由だ。ファイル名以外を指定せずにファイルを含める場合、 include_path は実際には、必要なファイルが書き込まれているディレクトリです。誰でもこれを確認できますか?