PHP インクルード相対パス: ファイル インクルード エラーの解決
/ に test.php と connect.php という 2 つのファイルがあります。ルート/update/ディレクトリ。 connect.php は、include "../config.php" 行を使用して /root/ ディレクトリから config.php をインクルードしようとします。ただし、これにより、ファイルの欠落に関連するエラーが発生します。
問題の理解
この問題は、test.php で設定されたインクルード パス (set_include_path(".: /root");) には、現在のディレクトリ (.) が含まれますが、親ディレクトリ (/root/update/ ディレクトリ) は含まれません。これは、connect.php が相対パス ../config.php を使用して config.php をインクルードしようとすると、ルート ディレクトリ (/root/) でそれが存在しないことを意味します。
問題の解決
この問題を解決するには、いくつかの方法があります。 options:
現在のファイルのディレクトリへの絶対パスを表す __DIR__ 定数を使用してファイルを含めることができます。このようにすると、相対パスを指定することなく構成ファイルにアクセスできます:
include(dirname(__DIR__).'/config.php');
ルート パス定数を定義して、ファイル インクルードのルート ディレクトリを指定できます。これにより、完全パスを指定せずにルート ディレクトリからの相対パスを使用できるようになります:
define('ROOT_PATH', dirname(__DIR__) . '/'); include(ROOT_PATH.'config.php');
絶対パスの使用はオプションではないと述べましたが、可能であれば絶対パスを使用してファイルを含めることができます直接:
include('/root/config.php');
結論
__DIR__ を使用するか、ルート パスを定義するか、絶対パスを使用することで、相対パスを使用するときにファイルが含まれる問題を解決できます。 PHP スクリプト内で。
以上がPHP で相対パスを使用してファイルを正しくインクルードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。