私はこれについての答えをインターネットの端まで探しました、そして私はそれが不可能であるという論理的な結論に到達しようとしています。異なるディレクトリ/レベルに他の複数のファイルが依存しているファイルを含める場合、一体どのように相対ルートを使用することを意味しますか?
例として、これが私のサイトの簡略化されたツリーです。
Main site (PHP reports the main root to be: /Users/Luke/Sites/)
-> index.php
-> directoryfolder - > secondaryindex.php
-> templates -> header.php
-> navigation.php
つまり、Finderでindex.phpに移動すると、ディレクトリは/Users/Luke/Sites/SiteAlpha/index.phpと表示されます。
index.phpとdirectoryfolder/secondsaryindex.phpの両方にheader.phpが含まれ、header.phpにはnavigation.phpが含まれます。問題は、header.phpのnavigation.phpのインクルード位置に名前を付けても、1ページしか正しく表示できないことです。IE:
ROOT_PATHのインクルード位置で(header.phpを介して)navigation.phpが呼び出された場合、'/templates/navigation.php(ROOT_PATHはdirname(__DIR__
)と等しい)はまったく表示されません。ただし、secondaryindex.phpでは機能します。
逆もまた同様です。ROOT_PATHのインクルード位置を使用してindex.phpでnavigation.phpが(header.phpを介して)呼び出された場合、'/siteAlpha/templates/navigation.phpは実際に機能します。ただし、secondaryindex.phpでは機能しません。
TL; DR、header.phpは異なるディレクトリレベルの複数のページから呼び出されるため、navigation.phpへのインクルードは私の最初の例と2番目の例である必要があります。
$ _SERVER ['DOCUMENT_ROOT']、dirname(__DIR__
) 、、__FILE__
自分で定義したルート定数を使用してみましたが、まったく成功しませんでした。私は無数の記事やSOの質問を読んだり、読んだり、読んだりしました。それはうまくいきません。
誰かが私にそれを機能させるために何をする必要があるかについてELI5の説明を教えてもらえますか?