共通の記述をファイル化する簡単な方法
ホームページの各ページには、共通な記述があります。フッターなどです。
同じ事を全てのペーに書くのは大変ですし、もし誤記や変更が合った場合全てのページを書き直す必要が出てきます。
共通の記述部分をファイル化する方法は色々あります。すぐ、思いつくのは、Smarty などのテンプレートを利用することです。ただ、テンプレートを使うにはそれなりの勉強が必要です。ここでは、とりあえず簡単に共通の記述をファイル化して利用できる、PHP の include() 関数を利用する方法を勉強します。
の記号は、ディレクトリを表します。
相対 URL を汎用的にする
次のようなディレクトリ構造で、h1.html に 汎用ファイル fix.html に書かれた内容を読み込んで表示してみましょう。
- web_dir
- h1_dir
- h1.html
- php_dir
- fix.html
- h1_dir
PHP を利用しますので、 html の拡張子で PHP が実行できる設定になっていることが前提です。もし、なっていない場合は、.htaccess で設定してください。設定できない場合は、仕方がありません。h1.html を h1.php に変えてください。
このサンプルを用意しましたので、確認してみてください。
サンプル: 共通ファイルを読み込むサンプル
h1.html と fix.html のサンプルリスト
次に、サンプルリストを示します。
とても簡単です。読み込みたいファイルを include() 関数で
<?php include("../php_dir/fix.html"); ?>
のように、指定するだけです。
h1_dir/h1.html 汎用ファイルを読み込む
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/css">
<title>h1_1.html のサンプル</title>
</head>
<body>
<!-- .htaccess でインクルードパスが設定できないとき -->
<?php include("../php_dir/inc_path.php"); ?>
<p>この下の記述は、fix.html から読み込んでいます</p>
<?php include("../php_dir/fix.html"); ?>
</body>
</html>
php_dir/fix.html 汎用ファイル
この方法は、とても簡単で直ぐに使えます。ただ、2つの問題があります。
- インクルードするファイルの相対 URL がディレクトリ階層ごとに違う
- 汎用ファイル内に相対 URL がある場合は、同位階層のファイルからしか使えない
この問題も解決できますが、少し勉強が必要です。解決方法は、相対 URL に掲載しています。
