PHPでrequireの使い方。他ファイルのプログラムを呼び出す方法

PHPでrequireの使い方。他ファイルのプログラムを呼び出す方法php

PHPで「require」を使って他ファイルからプログラムを呼び出す方法を記してます。

重複しているプログラムを共通化してrequire呼び出しGIF

 補足
PHPのis_numeric変数でURLパラメーターを制限する方法を読んでおくとこの記事の理解も爆上がりです!

phpのrequire関数の使い方

PHPでは、他のphpファイルをrequire関数で呼び出すことが可能です。

require
requireは指定されたファイルを読み込み、評価します。
参考:PHP -require

 

phpのrequire関数を利用するには、主に以下手順で行います。

  1. 重複してるプログラムを
  2. 別のPHPファイルへ書き出し
  3. requireでファイルを呼び出す

そのため先に「別のPHPファイル」となる「connect.php」を新規作成しておきます。 

connect.phpを新規作成したイメージ

STEP1. requireを実行するためのphpファイルに重複プログラムをコピペ

次に以下ファイル、

  1. 入力された値をデーターベースへ登録するファイル(index.php)
  2. データーベースから値を取得して表示するファイル(request.php)

の中で重複しているプログラムを切り取って、connect.phpへ書き出します

 

2つのファイルの中で重複しているプログラムは、データーベースへPDO接続する箇所

connect.phpに挿入する切り取るための重複プログラム

 

該当するコード↓

<?
// データーベースtestへ接続
try {
  $db = new PDO('mysql:dbname=test;host=localhost;charset=utf8','root','root');
  // 入力した値をデータベースへ登録
  $count = $db->exec('INSERT INTO 部品登録 SET 部品名="'. $_POST['buhin'] .'",登録日 = NOW()');
  // 登録した件数を表示
  echo $count . "件のデータを登録しました!";
} catch (PDOException $e) {
  // 接続できなかったらエラー表示
  echo 'DB接続エラー!: ' . $e->getMessage();
}
?>

 

そして、切り取ったプログラムを新規作成したconnect.phpに貼り付けます↓

connect.phpへrequire対象のプログラムを貼り付け

STEP2. PHPファイルの重複プログラムをrequireで統一

connect.phpへ以下のように貼り付けたら、 先の2つのファイル

  1. 入力された値をデーターベースへ登録するファイル(index.php)
  2. データーベースから値を取得して表示するファイル(request.php)

にconnect.phpを呼び出すrequire関数を書きます

 

具体的には、index.phpとrequest.phpから「connect.php」へ転記したプログラムがあった箇所に、

require('connect.php');

と記入します。

index.phpに書いたrequireのサンプル

index.phpに記入したコードのサンプルです↓

<main>
<h2>登録した部品名一覧</h2>
<!--?php 
//requireで重複プログラムを他ファイルから呼び出し
require('connect.php');
// 部品登録テーブルの部品名の値を降順に取得して$entryに格納
$entry = $db->query('SELECT * FROM 部品登録 ORDER BY 部品名 DESC');
?-->
<article><!--?php while($resister = $entry->fetch()): ?--><!-- $entryの値をfetchで1件ずつ取得して$resistorへ格納 --> <!--?php print(mb_substr($resister['部品名'],0,50)); ?--> <time><!--?php print($resister['登録日']); ?--></time>
<hr align="left" size="3" width="450" /><!--?php endwhile; ?--></article>
</main>

request.phpにrequireを書き込んだサンプル

request.phpに記入したコードのサンプルです↓

<main>
<h2>登録した部品名の詳細画面</h2>
<!--?php 
//requireで重複プログラムを他ファイルから呼び出し
require('connect.php');
//is_numericで入力値が数値以外だったらエラー処理
$id = $_REQUEST['id'];
if(!is_numeric($id) || $id <= 0) {
  print('入力する値を1以上の数字にしてね!');
  exit();
}
  //安全に処理するためにprepareとREQUEST変数で処理する
$Data = $db->prepare('SELECT * FROM 部品登録 WHERE id=?');
$Data->execute(array($id));
$hyouji = $Data->fetch();
?-->
<article>
<pre> </pre>
<a href="index.php">一覧画面へ戻る</a></article>
</main>

PHPでrequireを使った動作確認

入力フォーム開き適当な値を入力して登録

適当な値を入力してデータを登録

 

登録された画面が開きました。

登録された画面が開くイメージ

 

テキストリンクをクリックすれば、詳細画面も確認することができます。

登録された値の詳細画面

 

phpMyAdminからデータベースの中も覗いてみると、きちんと登録されていることが分かりますね。

データベースに値が登録されたイメージ

requireでデーターベースへ登録するプログラムを共通化しても、きちんと処理がなされていることが確認できました

require関数で他のファイルを読み込むときの注意点

require関数で他ファイルのプログラムを読み込むときは、対象のファイルが存在するディレクトリを指定する必要があります。

同じ階層に対象ファイルがある場合

同じフォルダの中に呼び出す対象のファイルがある場合、require実行パスの書き方はさきほどと同じ書き方でOK↓

require('connect.php');

1つ上の階層に対象ファイルがある場合

1つ上の階層に対象ファイルがある場合、例えば「test」フォルダにrequireのファイルが存在するとします。

1つ上の階層にphpファイルがある

/home/user/test/numeric

 

 

その場合、require関数で実行ファイルを呼び出すには、以下のように設定する必要があります。

require('../connect.php');

 

OYAKUN
OYAKUN
「../」で1つ上の階層のファイルを指定すればOKです!

まとめ

PHPのrequire関数を利用して、他のPHPファイルを呼び出して実行する方法でした。

 

実行するプログラムを1つにまとめておけるので、requireはめっちゃ便利な関数と言えるでしょう!

 

Excelマクロのwithステートメント、いやCallステートメントに似てるかな…にてない!

>PHPでURLパラメーターを指定して利便性をあげる方法

>PHPの$_REQUESTでMySQLから任意のデータを取得する方法

>【MySQL】PHPでデータベースを表示したHTMLにリンクも埋め込む

php
\OYAKUNをフォローする/
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
OYAKUDACHI.XYZ

コメント

タイトルとURLをコピーしました