私は自分自身にPHP/PDO / SQLを教えることができましたが、それでも、PHPとHTMLで相対パスがどのように機能するかを一生理解することはできません。いくつかのディレクトリとブランチを持つ複数ページのWebサイトがあり、スタイルシートへのリンクを変更することなく、新しいページを作成するために使用できる簡単なテンプレートを作成できるようにしたいと考えています。ディレクトリ。
これが私のレイアウトです:
MySite (http://localhost/MySite/)
RESOURCES //Not a folder, just here for readability
> serverside > initialize.php
> templates > header.php
footer.php
navuser.php
navmenu.php
> styles > styles.css
> images > variousImages.png
PAGES //Not a folder, just here for readability
> index.php
login.php
register.php
gettingstarted.php
> you > settings > settings.php
> youraccount.php
> yourfavourites.php
ゲームのルールは次のとおりです。各ページには、最初にserverside / initialize.phpファイル(PHPインクルード)が含まれています。次に、各ページには、標準のHTMLhref属性を介してstyles/styles.cssが含まれます。各ページには、PHPを介してtemplates/header.phpとtemplates/footer.phpの両方が含まれ、前者にはtemplates/navuser.phpとtemplates/navmenu.phpが含まれています。
問題は、ページの1つが異なるレベル(たとえば、you / settings / settings.php)にある場合、それらすべてのインクルードとhrefを変更する必要があることです。これは、インクルード内のインクルードに影響を与えるようです。それは不可能だ!
必要なのは、真の絶対パスを使用せずにファイル名を指定できるようにすることです。これにより、必要に応じて単一のテンプレートファイルをWebサイト全体に複製__DIR__
でき__FILE__
ます$_SERVER['DOCUMENT_ROOT']
。ルートですが、成功しません。何が起こっているのか半分もわかりません。
誰かが私の状況に光を当てることができますか?私は基本的に、相対的なルート/リンク/ファイルがPHPでどのように機能するかについての完全な説明を探しています。さらに複雑なディレクトリ構造に対処するにはどうすればよいですか?繰り返しますが、私は何をすべきですか?ありがとう。