共通の記述をファイル化する簡単な方法

ホームページの各ページには、共通な記述があります。フッターなどです。
同じ事を全てのペーに書くのは大変ですし、もし誤記や変更が合った場合全てのページを書き直す必要が出てきます。
共通の記述部分をファイル化する方法は色々あります。すぐ、思いつくのは、Smarty などのテンプレートを利用することです。ただ、テンプレートを使うにはそれなりの勉強が必要です。ここでは、とりあえず簡単に共通の記述をファイル化して利用できる、PHP の include() 関数を利用する方法を勉強します。
 の記号は、ディレクトリを表します。

相対 URL を汎用的にする

次のようなディレクトリ構造で、h1.html に 汎用ファイル fix.html に書かれた内容を読み込んで表示してみましょう。

  • web_dir
    • h1_dir
      • h1.html
    • php_dir
      • fix.html

PHP を利用しますので、 html の拡張子で PHP が実行できる設定になっていることが前提です。もし、なっていない場合は、.htaccess で設定してください。設定できない場合は、仕方がありません。h1.html を h1.php に変えてください。
このサンプルを用意しましたので、確認してみてください。
サンプル: 共通ファイルを読み込むサンプル

h1.html と fix.html のサンプルリスト

次に、サンプルリストを示します。
とても簡単です。読み込みたいファイルを include() 関数で
<?php include("../php_dir/fix.html"); ?>
のように、指定するだけです。

h1_dir/h1.html 汎用ファイルを読み込む

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "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 汎用ファイル

<p>全てのページで共通な記述(フッターやヘッダーなど)</p>

この方法は、とても簡単で直ぐに使えます。ただ、2つの問題があります。

  1. インクルードするファイルの相対 URL がディレクトリ階層ごとに違う
  2. 汎用ファイル内に相対 URL がある場合は、同位階層のファイルからしか使えない

この問題も解決できますが、少し勉強が必要です。解決方法は、相対 URL に掲載しています。

PR amazon

author

サイト管理人:パワーデジット
管理人への連絡フォーム

スポンサード リンク

このページは 

トップページ > PHP > ファイルの共用