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 を使用してください:ファイルが必須でなく、ファイルが見つからない場合にアプリケーションが続行するべきである場合。