これは*nix と Windows の両方defineのインクルード パスへの適切な方法ですか?
define( 'INCPATH', realpath( dirname( __FILE__ ) ) . '/' );
上記で含めた末尾のスラッシュに注意してください。include/require のスラッシュは、両方の OS でも同じですか?
編集(回答で更新):
私が収集できることから、以下のコードは、* nix と Windows OS の両方のインクルード/要求パスを普遍的に定義する適切な方法です。以下のコメントで自由に修正してください。
私を混乱させたのは、back-slashes (\)intoの置換を示す多くの例でしたforward-slashes(/)。以下の回答のいくつかに基づいて、これは不要です。
したがって、最終的な正しいコード (純粋主義者向け) は次のとおりです。
define( 'INCPATH', realpath( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR );
そのコードは次の結果を生成します。
*nix: /path/to/the/file/
Windows: C:\Path To\the\file\
__FILE__内側 ( ) から外側 ( )に進む簡単な説明realpath():
FILE ファイルのフル パスとファイル名。シンボリック リンクが解決された絶対パスが常に含まれます。
dirname()返される文字列は、末尾の /component が削除されたパスです。ファイル名を削除する責任があります。
realpath()成功すると、正規化された (正規化/標準化された) 絶対パス名を返します。結果のパスには、シンボリック リンク'/./'や'/../'コンポーネントは含まれません。__FILE__すでにシンボリックリンクが解決されているため、これは徹底のために含まれていると思います。それとも、相対パスを解決するために含まれているのでしょうか? いずれにせよ、それは私たちの目標を固めているようです.