PHP のパスの問題の解決には以下が含まれます
提供されたシナリオでは、パス /root/update/test.php の PHP スクリプトが次のことを試みます。ファイル connect.php を /root/connect.php に含めます。 test.php 内のインクルードは成功しますが、その後の connect.php 内のインクルードは必要なファイル config.php を見つけることができません。
混乱は、test.php 内のインクルード パスが に設定されているという事実から生じます。 :/root は、connect.php が現在の作業ディレクトリと /root ディレクトリで config.php を検索することを提案します。ただし、このエラー メッセージは、connect.php が実際には config.php が存在しない独自のディレクトリからファイルをインクルードしようとしていることを示しています。
この問題を解決するには、別のアプローチを利用して必要な設定を決定できます。ファイル パス。
解決策の 1 つは、現在のファイルのディレクトリを表す PHP マジック定数 __DIR__ を使用することです。 dirname(__DIR__) を目的のファイル名と連結することにより、ディレクトリ構造を上位に移動し、必要なファイルにアクセスできます。この場合、test.php の変更されたコードは次のようになります。
include(dirname(__DIR__).'/config.php');
もう 1 つの方法は、dirname(__DIR__) を使用してルート パスを定義し、それを定数変数に格納することです。このルート パスを使用して、必要なインクルード パスを構築できます。 test.php では次のようになります:
define('ROOT_PATH', dirname(__DIR__) . '/'); include(ROOT_PATH.'config.php');
これらの改訂されたアプローチを採用することで、PHP スクリプトは、ファイル構造や動作しているデプロイメント環境に関係なく、必要なファイルを正常にインクルードできるようになります。
以上が一見正しいインクルード パスにもかかわらず、PHP インクルードが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。