はじめに
「果物ごとにページを作りたいけど、毎回HTMLファイルをコピーするのは大変…」
そんなときに便利なのが、PHPの配列をデータベース代わりに使う方法です。
通常、Webサイトで大量のデータを管理する場合はMySQLなどのデータベースを利用します。
しかし、小規模なサイトや検証用のサイトであれば、PHPの配列だけでも十分に運用できます。
この記事では、
という仕組みを解説します。
ちなみにデータベースを使用する際の方法については、下記記事(有料)で詳しく説明しているのでご参照ください!

この方法でできること
例えば次のURLにアクセスすると、
index.php?fruit=1
「りんごの紹介ページ」が表示されます。
index.php?fruit=2
なら「みかんの紹介ページ」
index.php?fruit=3
なら「ぶどうの紹介ページ」。
つまり、
1つのHTMLテンプレートで複数ページを生成できる
ということです。
全体の仕組み(ファイル構成)
fruit_site/
├── data.php
├── config.php
└── index.php
各ファイルの役割
| ファイル | 役割 |
|---|---|
| data.php | データベース代わり |
| config.php | サイトの基本設定 |
| index.php | URLを受け取りページ生成 |
STEP1 データを配列で用意する(data.php)
まずは表示したいデータを配列として作成します。
これが今回の「簡易データベース」になります。
<?php
// 果物のデータ
$fruits = [
1 => ['fruit_name' => 'りんご'],
2 => ['fruit_name' => 'みかん'],
3 => ['fruit_name' => 'ぶどう'],
4 => ['fruit_name' => 'もも'],
// ... 必要なだけ追加できる
];
// 農園のデータ
$farms = [
1 => [
'code' => 'north',
'path' => '/fruit_site',
'farm_name' => '北の農園',
'tel' => '0120-123-456',
'line' => 'https://example.com',
],
2 => [
'code' => 'south',
'path' => '/fruit_site',
'farm_name' => '南の農園',
'tel' => '0120-123-456',
'line' => 'https://example.com',
],
];
配列がデータベースになる仕組み
例えば、
$fruits[1]
を取得すると、
[
'fruit_name' => 'りんご'
]
が返ってきます。
データベースでいうと、
| id | fruit_name |
|---|---|
| 1 | りんご |
| 2 | みかん |
| 3 | ぶどう |
と同じようなイメージです。
ポイント
- 配列のキー(1、2、3)がIDになる
- データを増やしたいときは1行追加するだけ
- MySQL不要
STEP2 デフォルト設定を作る(config.php)
サイト全体で使う基本設定を別ファイルにしておきます。
config.php
<?php
return [
'code' => 'north',
'path' => '/fruit_site',
'farm_name' => '北の農園',
'tel' => '0120-123-456',
'line' => 'https://example.com',
];
returnで配列を返す
このファイルは、
$config = include('config.php');
で読み込めます。
すると、
$config['farm_name']
のように利用できます。
ここに書いた値が、「何も指定しなかった時のデフォルト値」になります。
STEP3 URLの値を受け取る(index.php)
ここが一番重要な部分です。
index.php
<?php
// 1. 設定とデータを読み込む
$config = include(__DIR__ . '/config.php');
include(__DIR__ . '/data.php');
// 2. URLからパラメータを取得する
// 例: ?fruit=3 なら $fruit_id = 3
$fruit_id = isset($_GET['fruit'])
? (int)$_GET['fruit']
: 1;
// 3. 該当するデータを取得(なければデフォルトの1番)
$fruit = isset($fruits[$fruit_id])
? $fruits[$fruit_id]
: $fruits[1];
// 4. 設定にフルーツ名をセット
$config['fruit_name'] = $fruit['fruit_name'];
URLとの関係
| URL | 表示内容 |
|---|---|
| index.php | りんご(デフォルト) |
| index.php?fruit=1 | りんご |
| index.php?fruit=2 | みかん |
| index.php?fruit=3 | ぶどう |
| index.php?fruit=4 | もも |
$_GETとは?
例えば
index.php?fruit=3
というURLの場合、
$_GET['fruit']
には
3
が入ります。
(int) を付ける理由
(int)$_GET['fruit']
としておくことで、
?fruit=abc
のような不正な文字列が送られても数値として扱えます。
セキュリティ面でも重要な処理です。
存在しないIDだった場合(isset())
例えば
?fruit=999
だった場合、
$fruits[999]
は存在しません。
そこで、
isset()
を使って確認し、
存在しなければデフォルトの
$fruits[1]
を表示しています。
STEP4 HTMLへ表示する
取得したデータはHTML内で利用できます。
<title>
<?php echo $config['farm_name']; ?>
<?php echo $config['fruit_name']; ?>紹介ページ
</title>
<p>
<?php echo $config['fruit_name']; ?>
の魅力をご紹介します。
</p>
<a href="tel:<?php echo $config['tel']; ?>">
電話する
</a>
表示例
fruit=1
北の農園 りんご紹介ページ
fruit=3
北の農園 ぶどう紹介ページ
同じHTMLなのにURLだけで内容が変わります。
STEP5 共通パーツを分割する
ヘッダーやフッターなど、全ページで使う部品は別ファイルにして include で読み込みます。
index.php
<!-- header.phpを読み込み -->
<?php include(__DIR__ . '/header.php'); ?>
<div class="main-content">
ページ本文
</div>
<!-- footer.phpを読み込み -->
<?php include(__DIR__ . '/footer.php'); ?>
header.php
<header>
<p>
<?php echo $config['farm_name']; ?>
の果物情報サイト
</p>
<a href="tel:<?php echo $config['tel']; ?>">
電話する
</a>
<a href="<?php echo $config['line']; ?>">
お問い合わせ
</a>
</header>
配列とデータベースの違い
ここで初心者が疑問に思うのが、
「結局データベースと何が違うの?」
という点です。
配列の場合(PHPファイルのみ)
$fruits = [
1 => ['fruit_name' => 'りんご'],
2 => ['fruit_name' => 'みかん']
];
PHPファイルの中に直接データを書きます。
メリット
デメリット
MySQLの場合(データベース使用)
データはデータベースに保存されます。
例:
| id | fruit_name |
|---|---|
| 1 | りんご |
| 2 | みかん |
| 3 | ぶどう |
PHPは必要なときだけ取得します。
メリット
デメリット
この方法が向いているケース
まとめ
処理の流れは非常にシンプルです。
URLパラメータ(?fruit=3)
↓
index.php が受け取る($_GET['fruit'])
↓
data.phpから取得($fruits[3])
↓
HTMLへ表示
<?php echo $config['fruit_name']; ?>
この方法を使えば、
- データベース不要
- PHPだけで完結
- 1つのテンプレートで大量ページ生成
が実現できます。
まずは配列で仕組みを理解し、データ量が増えてきたらMySQLへ移行するのがおすすめです。
PHP初心者が「動的ページの考え方」を学ぶ最初のステップとしても非常にわかりやすい方法です。

