2009-11-10
レイアウトを読み込もう
PHPでレイアウトを読み込む
前回のエントリ『グローバルエリアがフレームのサイトってまだあるんだ』でちょっと書いたんだけど、やっぱり各ページで共通の項目は、ひとつのファイルから読み込むほうが楽です。 でも、<iframe>ってわけにはいかないので。
PHPの関数
PHPには、外部のファイルを読み込むための関数があります。 主なものは、requireとincludeです。
- require⇒ファイルの読み込みに失敗すると、以降のスクリプトは実行しない
- include⇒ファイルの読み込みに失敗しても、以降のスクリプトを実行
どちらの関数も効果そのものは同じです。 …というわけなので、includeのほうが、いいかなと。
- require_once
- include_once
↑ こうすると、1度だけ読み込みをするということになります。
関数などは同じファイルを繰り返して読み込むとエラーになるので、読込みをするファイルに動的な要素(プログラム)を含む場合は、こっちを使います。
それぞれの関数はレンタルのWebサーバによっては動作しない場合もあるかもしれません。
使い方は簡単、テンプレート化して読み込むだけ
例えばヘッダーだったら…
<?php include("header.tpl"); ?>
↑ こんな感じで読み込みます。 拡張子は.htmlでも.phpでもかまいませんが、個人的には.tplを良く使います。
共通部分(グローバルエリア)が図のように3箇所だったら同じように…
- <?php include(“header.tpl”); ?>
- <?php include(“left.tpl”); ?>
- <?php include(“footer.tpl”); ?>
これでOKです。 あとは、HTMLファイルをPHPファイルに変えるだけです。 HTMLソースもずいぶんスッキリすると思います。
hoge.html
↓
hoge.php
リンク切れにご用心
以上の作業で読み込んだファイルは、静的なファイルです。 深いディレクトリにあるWebページの場合、相対リンクの階層が変わるためリンク切れを起こしてしまいます。
PHPスクリプトを使って正しいリンク先の相対パスを生成させることも可能ですが、とりあえず絶対パスにしておけばリンク切れの問題はありません。
関連記事