PHP Include ファイル

サーバーサイドのインクルード(SSI)は、複数のページで再利用できる関数、ヘッダー、フッター、または要素を作成するために使用されます。

include (または require)文は、指定されたファイルに存在するすべてのテキスト/コード/タグを取得し、include 文言を使用したファイルにコピーします。

ファイルを含めることは、Webサイトの複数のページで同じ PHP、HTML、またはテキストを参照する必要がある場合に非常に便利です。

PHP include と require 文言

include または require 文言を使用して、PHP ファイルの内容を別の PHP ファイルに挿入することができます(サーバーがそれを実行する前に)。

include と require 文言は同じですが、エラーハンドリングの面で異なります:

  • require は致命的なエラー(E_COMPILE_ERROR)を生成し、スクリプトを停止します
  • include は警告(E_WARNING)のみを生成し、スクリプトは続行します

したがって、ファイルが失われた場合でも実行を続け、ユーザーに結果を表示したい場合は include を使用してください。また、フレームワーク、CMS、複雑なPHPアプリケーション開発では、キーファイルを実行ストリームに参照するために常に require を使用してください。これは、重要なファイルが失われた場合のアプリケーションの安全性と完全性を向上させます。

ファイルの含め方は多くの作業を省きます。これは、すべてのページ用に標準的なヘッダー、フッター、メニューファイルを作成できることを意味します。ヘッダーを更新する必要がある場合、このヘッダー含めファイルを更新するだけで良いのです。

文法

include 'filename';

または

require 'filename';

PHP include 実例

例 1

「footer.php」という名前の標準的なフッターファイルがこんな感じです:

<?php
echo "<p>Copyright © 2006-" . date("Y") . " codew3c.com</p>";
?>

このフッターファイルをページに参照する場合は、include文を使用してください:

<html>
<body>
<h1>当社のホームページへようこそ!</h1>
<p>一段のテキスト。</p>
<p>一段のテキスト。</p>
<?php include 'footer.php';?>
</body>
</html>

実行例

例 2

「menu.php」という名前の標準的なメニューファイルがあると仮定しましょう:

<?php
echo '<a href="/index.asp">ホーム</a> -
<a href="/html/index.asp">HTML 教程</a> -
<a href="/css/index.asp">CSS 教程</a> -
<a href="/js/index.asp">JavaScript 教程</a> -
<a href="/php/index.asp">PHP 教程</a>';
?>

ウェブサイトのすべてのページはこのメニューファイルを使用しています。具体的には(<div>要素を使用して、今後CSSで簡単にスタイルを設定できるようにしています):

<html>
<body>
<div class="menu">
<?php include 'menu.php';?>
</div>
<h1>欢迎访问我的首页!</h1>
<p>いくつかのテキスト。</p>
<p>さらに多くのテキスト。</p>
</body>
</html>

実行例

例 3

「vars.php」という名前のファイルがあり、いくつかの変数が定義されていると仮定しましょう:

<?php
$color='银色的';
$car='奔驰轿车';
?>

その後、この「vars.php」ファイルを参照すると、呼び出し元のファイルでこれらの変数を使用できます:

<html>
<body>
<h1>欢迎访问我的首页!</h1>
<?php
include 'vars.php';
echo "我有一辆" . $color . $car "。";
?>
</body>
</html>

実行例

PHP include vs. require

require 文も PHP コードにファイルを参照するために使用されます。

しかし、include と require には大きな違いがあります:include 文でファイルを参照し、PHP がそのファイルを見つけられない場合、スクリプトは続行します:

<html>
<body>
<h1>Welcome to my home page!</h1>
<?php
include 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>

実行例

もし同じケースを require 文で完了した場合、echo 文は続行しません。なぜなら、require 文が重大なエラーを返した後、スクリプトの実行が終了するからです:

<html>
<body>
<h1>Welcome to my home page!</h1>
<?php
require 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>

実行例

コメント:

この時点で require を使用してください:ファイルがアプリケーションによって要求された場合。

この時点で include を使用してください:ファイルが必須でなく、ファイルが見つからない場合にアプリケーションが続行するべきである場合。