require関数でファイルを読み込む(PHP)

PHPでファイルを読み込む関数はrequire('引数');です

もしくはinclude('引数');


require_once もしくは、include_onceとすると1度だけファイルを読み込みます

PHPでファイルを読み込むことでホームページ更新作業がものすごく楽になったり
いろいろ便利なことが多いので早速覚えましょう

例えば、このページの左のメニューですが・・・・・・

1つメニューを増やすとします
従来のHTMLページなら、すべてのページのメニューを書き換えるか
文字列置換するソフトなどを使う羽目になります。

これをPHPでやるとものすごく簡単なのです

左のメニューを書いたテキストなどを作り(menu.txt)とします
読み込ませたい部分にPHPでrequire('menu.txt');と書くだけです。

CSSを外部から呼び出すのに似ていますね

当ページの左側のメニューはrequire関数で呼び出したメニューです

PHPが動作するページでないと作動しませんので注意してください


include(require)ファイルにブラウザから直接アクセスできなくする方法

通常 インクルードファイルはブラウザから直接アクセスする必要がありません。
むしろ、パスワードなどが書かれた重要なファイルはブラウザから直接アクセスされると困ります

通常、パスワードなどが書かれた重要なファイルを置く場合「.htaccess」や
サーバーの公開外ディレクトリにファイルを置くといいのですが、レンタルサーバーの状況によってはそれが出来ない場合があります

そういった場合
require(inculudeファイル)に以下のPHP文(赤い部分)を加えることで
ブラウザから直接アクセスした場合にはじく
ことができます

requireファイルの例

<?php
if (array_shift(get_included_files()) === __FILE__) die();
$user = 'root';
$pass = 'pass';
?>

requireの引数 マジック定数(__FILE__)について

requireの引数に (__FILE__)をつけるとそのファイルの絶対パスで読み込みます
inculudeを使った場合も同じです

このマジック定数 __FILE__ を使う理由は、
とあるファイルを読み込む場合、その読み込んだファイルにもさらにrequireやincrudeの記述があるとうまく作動しません

こういう場合は マジック定数 (__FILE__)を記述しておけば正常に読み込んでくれる(はず)

以下に書き方の例をしめします

require realpath(dirname(__FILE__)).'/../user/dbinfo.php';

requireとincludeのちがい

基本的に require関数とinclude関数は、ほぼ同じですが1つだけ決定的に違う所があります。

requireは読み込みに失敗するとそこでエラーになって止まりますが、
includeはエラーには、なりますがその後の処理も続きます


includeかrequireどちらを使うか?

完全に自分の好みでいいと思いますw
入力しやすいほうとか・・・・・

requireの引数について

require(引数)で検索してくる人が多いので追記しときます

require('nantoka.html')とかそのファイルを直接記述するのは良いですが、

$nantoka = $_POST['url'];// $nantokaはユーザーからの入力値
require('$nantoka');
上記のようにユーザーからの入力値を引数にするのは
「include攻撃」という攻撃を受ける脆弱性プログラムになるので
絶対に使用してはいけません

トップページへ戻る