1

これは非常に単純ですが、ほとんどの場合非常に混乱します..

パターンに従ってファイルを含めるときの意味を知る必要があります(多くの場所で見た場合、これ以上のものがある可能性があります)

その意味 ?

"./path" 

"/path"

"../path"

dirname(__FILE__)

basename(dirname(dirname(__FILE__)));

require dirname(__FILE__) . DIRECTORY_SEPARATOR;

pathinfo()

define('BASE_PATH',realpath('.'));

define('BASE_URL', dirname($_SERVER["SCRIPT_NAME"]));
4

1 に答える 1

2

"。/道"

ドットは作業ディレクトリを表します。これは、コマンド ラインで「pwd」と入力すると表示されるディレクトリです。これは、スクリプト自体のディレクトリ、または最初に実行されるスクリプトのディレクトリである可能性がありますが、常にではありません。

"/道"

スラッシュで始まるパスは、最上位ディレクトリからの相対パスです。これは通常、サーバーのルート ディレクトリですが、サーバーの構成方法によっては、マウント ポイント、ユーザー ディレクトリ、または Web ルートになることもあります。

"../道"

".." は、作業ディレクトリの 1 つ上のディレクトリを指します。したがって、作業ディレクトリが /foo/bar の場合、「..」は「/foo」であり、「../path」は「/foo/path」を参照します。

ディレクトリ名(__FILE__)

dirname() 「親ディレクトリのパスを返します。」__FILE__ は、それを使用するファイルのフル パスを参照する魔法の定数です。したがって、/foo/bar/baz/file.php にスクリプトがある場合、__FILE__ は「/foo/bar/baz/file.php」になり、dirname(__FILE__) は「/foo/bar/baz」になります。

basename(dirname(dirname(__FILE__)));

basename() 「パスの末尾の名前コンポーネントを返します」. dirname() にも同じ規則が適用されるため、前の例の dirname(__FILE__) は "/foo/bar/baz" ですが、dirname(dirname(__FILE__)) は "/foo/bar" になります。このパスの末尾のコンポーネントは「bar」であるため、この __FILE__ の basename(dirname(dirname(__FILE__))) は「bar」になります。

dirname(__FILE__) が必要です。DIRECTORY_SEPARATOR;

DIRECTORY_SEPARATOR は私が知らなかった定数ですが、ファイル システムの拡張子で定義されているようです。__FILE__ が「/foo/bar/baz/file.php」の場合、パスは「/foo/bar/baz/」になります。したがって、このステートメントは不完全なようです。require() は include() に似ていますが、ファイルが見つからない場合にエラーが発生します。パスがファイルを参照することはないため、このステートメントはあまり意味がありません。

パス情報()

pathinfo() はパスを解析します。パスを渡すと、dirname、basename、extension、および filename キーと、解析されたパスのそれぞれの部分を含む連想配列が提供されます。

define('BASE_PATH',realpath('.'));

realpath() は相対パスを取り、それを絶対パスに変換します。前述のとおり、「.」作業ディレクトリを参照し、それが「/foo/bar/baz」の場合、realpath(「.」) は「/foo/bar/baz」を返します。define() は定数を作成するため、これは BASE_PATH 定数をスクリプトの作業ディレクトリに設定する効果があります。これは、スクリプトの過程で作業ディレクトリが変更された場合、またはサブディレクトリにファイルを含める場合に、定数を使用して Web アプリケーションの最上位を参照できる場合に役立ちます。

define('BASE_URL', dirname($_SERVER["SCRIPT_NAME"]));

define() と dirname() も同じです。ここで新しいのは $_SERVER["SCRIPT_NAME"] です。スクリプトが読み込まれるアドレスが example.com/foo/file.php の場合、これは "/foo/file.php" になり、その dirname() は "/foo" になります。この定数を設定すると、Web アプリ内のページが相互に参照するのに役立ちます。

于 2012-06-01T03:40:19.270 に答える