PHP の __FILE__ 定数
今日、PHP の定数 __FILE__ で問題が発生しました。
オンラインで確認しました。以下にルールをまとめます。
dirname(__FILE___) 関数は、スクリプトが配置されているパスを返します。
たとえば、ファイル b.php には次のコンテンツが含まれます。
<span style="color: #008080;">1</span> <?<span style="color: #000000;">php </span><span style="color: #008080;">2</span> <span style="color: #800080;">$basedir</span> = <span style="color: #008080;">dirname</span>(<span style="color: #ff00ff;">__FILE__</span><span style="color: #000000;">); </span><span style="color: #008080;">3</span> ?>
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 つ上のレベルに移動できます:
例: $d = dirname(dirname(__FILE__) );
実際には、ディレクトリは dirname() のパラメータとして与えられます。 dirname() は \\ や /
を付けずに最後のディレクトリを返すため、繰り返し使用すると dirname() は最下位のディレクトリをファイル名として扱うと考えられます。通常どおり、現在のディレクトリの上位ディレクトリに戻ります。
この方法を繰り返して、上位ディレクトリを取得したファイルが含まれています。
include(dirname(__FILE__).'/../filename.php');