Tips

2012.12.17

PHP include文を用いた外部ファイルの読み込みについて 【初級編 第36回】

PHP include文を用いた外部ファイルの読み込み

外部ファイルの読み込み

前回は外部ファイルの読み込みで require文について記載しました。
今回も外部ファイルの読み込みですが requireではなく、include文について記載したいと思います。

include文について

include文を使用しても require文のように外部ファイルを読み込むことができます。
require文との違いは、requireではもし読み込むファイルが存在しなかったらエラーでその場でPHPの処理全体が停止してしまいますが、
includeを使用すると、もしファイルが存在しなくても処理を続行することができます。
ただしファイルが存在しなかった場合は Warningを出力します。

include文の記述のしかた

include文は以下のように記述します。

  include "読み込みたいファイル名";

もしくは

  include ("読み込みたいファイル名");

読み込むファイルには require と同じように PHPファイル、HTMLファイル、テキストファイルなどを読み込むことができます。
テキストファイルは改行されないのでご注意ください。

includeのサンプル

外部ファイルを読み込むサンプルを記述します。
以下では inc01.php ファイルから inc02.php ファイルを読み込んでいます。

inc01.php

<?php
  include "inc02.php";
?>

inc02.php

<?php
  echo "これは inc02.php に記述されたメッセージです。";
?>

表示結果は以下のようになります。
HTMLファイルやテキストファイルも同じように読み込むことができます。
ブラウザ確認画像

require文との違い

require文では読み込み用のファイルが存在しない場合はエラーになりそこで処理が終了してしまいます。
以下では require で存在しないファイル non.php ファイルを読み込む命令を記述しています。

<?php
  require "non.php";
  echo "外部ファイル読み込み実行後のメッセージ";
?>

結果は以下のようにエラーになりました。
ブラウザ確認画像
では同じファイルを include を使用して読み込んでみます。

<?php
  include "non.php";
  echo "外部ファイル読み込み実行後のメッセージ";
?>

結果は以下のように失敗しても、その次の行の echo の処理が実行されました。
ブラウザ確認画像

Warningメッセージの表示

includeではファイルが無かった場合にWarningメッセージを表示しています。
以下では先ほどの non.php がファイルが無かった場合のWarningメッセージを表示するようにしています。

<?php
  ini_set('display_errors', 1);
  include "non.php";
  echo "外部ファイル読み込み実行後のメッセージ";
?>

結果は以下のようになりました。
ブラウザ確認画像

ループを使用した外部ファイルの読み込み

for文などと組み合わせればループ処理の中で読み込むファイルを変えることができます。
これは requireでも可能です。

inc04.php

<?php
  for($i = 1; $i <= 3; $i++){
    include "read$i.php";
  }
?>

read1.php

<?php
  echo "read1.php に記述されたメッセージ<br>";
?>

read2.php

<?php
  echo "read2.php に記述されたメッセージ<br>";
?>

read3.php

<?php
  echo "read3.php に記述されたメッセージ<br>";
?>

表示結果は以下のようになります。
ブラウザ確認画像

include_once文

include_onceを使用すると、require_once のように1度読み込んだファイルは読み込まないようにすることができます。
include_once文は以下のように記述します。

  include_once "読み込みたいファイル名";

もしくは

  include_once ("読み込みたいファイル名");

include と include_once文の比較

以下では includeと include_once それぞれで同じファイルを複数回読み込んでいます。

読み込むファイル
read.php

<?php
  $i++;
  echo "read.phpを読み込んだ回数: $i<br>";
?>

includeの場合

<?php
  include "read.php";
  include "read.php";
  include "read.php";
?>

表示結果
ブラウザ確認画像

include_onceの場合

<?php
  include_once "read.php";
  include_once "read.php";
  include_once "read.php";
?>

表示結果
ブラウザ確認画像

このように include_onceでは同じファイルは1度だけしか読み込みませんでした。

新連載はじまりました!新PHP基礎 連載リンク

PHP基礎 連載

Recent News

Recent Tips

Tag Search