共通コンテンツ(コード)を外部ファイル化し、読み込み利用する平成30年 1月 9日 作成

0095

概略

HTML・PHPを作成しページが増えて行くとヘッダー部・フッター部といった共通利用部分の作成において、作成するだけならコピペ操作で容易なのだが、修正となるとページ毎に修正を加えなくてはならなくなり大変。

そこで、ヘッダー、フッターといった共通利用部分を外部ファイル化し、利便性・メンテナンス性向上を図る。

手段

共通部分のソースコードを別のPHPファイルとして保存する。

呼び出し元のファイルに読み出し用の関数を記載する。

上記2工程で当初の目的は達成できるが、読み出し方法には複数あり用途が異なるので、詳細を下記に記載。

実装方法

読み込み方法・使用する関数

  • include読み込みに失敗した場合、後にづつく処理も続行する。
  • require読み込みに失敗した場合、後にづつく処理は停止する。
  • include_once同ファイルが指定された場合、一度だけ読み込む。読み込みに失敗した場合、後にづつく処理も続行する。
  • require_once同ファイルが指定された場合、一度だけ読み込む。読み込みに失敗した場合、後にづつく処理は停止する。

呼び出し元のファイルへの記述方法。

「include」記述例

<?php
	include("sample.php");
?>

「require」記述例

<?php
	require("sample.php");
?>

「include_once」記述例

<?php
	include_once("sample.php");
?>

「require_once」記述例

<?php
	require_once("sample.php");
?>

呼び出されるファイル「sample.php」。

<h1>メインタイトル</h1>
<!-- コンテンツ -->

上記「include」・「require」関数には相対パス・絶対パスが使える。

下記の様なディレクトリ構造時で「second.php」 から「header.php」インクルードする場合。

  • index.php
  • common
    • module
      • header.php
      • footer.php
  • about
    • second.php

絶対パス例

<?php
	// ドキュメントルートと組み合わせて使う
	$root = $_SERVER['DOCUMENT_ROOT'];
	include($root."/common/module/header.php");
?>

相対パス例

<?php
	// 「__DIR__」を使用し「include」・「require」を記述するファイルからの相対パスで指定
	include(__DIR__."/../common/module/header.php");
?>

考察

作成したHTML・PHPファイルの共通部分の外部ファイル化による利便性・メンテナンス性向上した。


通常ファイル等の読み込みは「include()」、確実に読み込ませなくてはならない重要場面等においては「require()」と、使い分けが必要なのかな。 読み込み指定を間違わないことが一番。


多くのページで対象ファイルを読み込み場合においては、修正を行う場合、そのファイルのみの修正で全ファイルの修正が可能となり、利便性・メンテナンス性が向上した。

最後までお読み下さり ありがとうございました。記事はここ迄です。

尚、本記事は作成から「5年以上」経過しています。

記事作成当時と現在の状況等により内容が適切でない場合があります。また、リンク切れが生じている場合もあります事を予めご了承下さい。

お気に入りに登録しますとお気に入り記事を一元管理でき、再度閲覧したい場合等 容易に記事を探し出す事ができますのでご活用下さい。

下段にはコメントを掲載しております。

広告バナー

コメント

頂いたコメントを下記に掲載しております。更に下部にはコメント投稿フォームを設けております。

注意事項を確認・了承した上、コメント投稿お願いいたします。

注意事項に該当するコメントにつきましては、事前告知なしに投稿したコメントの削除を行う場合があります。

予めご了承下さい。

  • 記事内容と無関係なコメント
  • 公序良俗に反するコメント
  • 個人情報や法令違反を含むコメント
  • その他、管理者が不適切と判断したコメント

現在 頂いているコメントはありません

返信先(コメント管理番号)コメントに対し返信する場合のみ
お名前・ハンドルネーム2~32文字内で入力下さい
メールアドレス公開される事はありません
電話番号半角数字+ハイフンで入力下さい
コメント全角500文字内で入力下さい