今日、PHP の定数 __FILE__ で問題が発生しました。
ネットで調べました。以下のルールをまとめます。
dirname(__FILE___) 関数は、スクリプトが配置されているパスを返します。
たとえば、ファイル b.php には次の内容が含まれます:
$basedir = dirname(__FILE__)
?>
b.php が a.php ファイルによって参照されている場合は、他のディレクトリに含める必要があります。 。
変数 $basedir の内容は、b.php が配置されているフォルダーへのパスのままです。
a.php ファイルが配置されているディレクトリになる代わりに。
dirname(__FILE__) は通常、ファイルが配置されている現在のディレクトリからシステムのルート ディレクトリまでのディレクトリ構造を返します。
現在のファイル名は返されません。
dirname(__FILE__) は . (現在のディレクトリ) を返すこともあります
[その理由は、b.php ファイルが http.conf または PHP 構成開発環境のデフォルトの WEB ディレクトリにあるためです
たとえば、WEB_ROOT は次のとおりです。 C:/root/www/ ".]
b.php ファイルのパスは: "C:/root/www/b.php" です。
使用上のヒント、
これを 1 回繰り返すと、ディレクトリを 1 つ上に移動できます。 level:
例: $d = dirname (dirname(__FILE__));
実際、ディレクトリは dirname() のパラメータとして与えられます。 dirname() は \\ や /
を付けずに最後のディレクトリを返すため、繰り返し使用すると dirname() は最下位のディレクトリをファイル名として扱っていると考えられます。通常通り
カレントディレクトリの上位ディレクトリに戻ります
上位ディレクトリを取得したファイルを取得します
include(dirname(__FILE__).'/ ../ファイル名.php') ;