Webページを動的に制御する場面では、URLに含まれる GETパラメータ によって表示する内容を切り替える処理がよく使われます。
この記事では、PHPを使って GETパラメータの値に応じて表示内容を変更する基本的な方法 をご紹介します。
GETパラメータとは?
URLの末尾に ?key=value の形式で付加される値のことを GETパラメータ と呼びます。複数ある場合は & で区切ります。
https://example.com/page.php?type=news
この例では、type=news がGETパラメータです。
基本的な分岐処理の書き方
<?php
$type = isset($_GET['type']) ? $_GET['type'] : '';
if ($type === 'news') {
echo '<h2>最新ニュース一覧</h2>';
} elseif ($type === 'blog') {
echo '<h2>ブログ記事一覧</h2>';
} else {
echo '<h2>全コンテンツ一覧</h2>';
}
?>
- $_GET[‘type’] で type パラメータの値を取得
- isset() で存在チェックを行うことで未指定時のエラーを防止
- 条件分岐で表示内容を出し分け
応用:パラメータごとにテンプレートを分ける
パラメータに応じて別ファイルを読み込む実装も可能です。
<?php
$type = isset($_GET['type']) ? $_GET['type'] : 'default';
switch ($type) {
case 'news':
include 'template-news.php';
break;
case 'blog':
include 'template-blog.php';
break;
default:
include 'template-default.php';
break;
}
?>
- 管理がしやすく、テンプレートを分けて記述可能
- 再利用性も高く保守性が向上
セキュリティ上の注意点
GETパラメータは誰でもURLに自由に入力できるため、バリデーションやエスケープ処理が重要です。
例:出力時には htmlspecialchars() を使用する。
<?php
echo htmlspecialchars($_GET['type'], ENT_QUOTES, 'UTF-8');
?>
まとめ
GETパラメータを利用することで、ページの表示を柔軟に切り替えることが可能です。
条件分岐による表示切り替えだけでなく、テンプレートの読み込みやコンテンツ制御にも応用できます。
フォームやリンク先で ?type=news のようにパラメータを付けるだけで、簡単に動的なページを実現できるため、ぜひ活用してみてください。