【PHP入門の第一歩】サーバーサイド言語とは?PHPで動的なWebサイトを作ってみよう!
「私のウェブサイト、いつも同じ内容でつまらないな…」
「時間や曜日によって、表示するメッセージを変えられたら面白そう!」
HTMLやCSSで静的なページを作るのに慣れてきたあなたが、次なるステップへ進むために避けて通れないのが「サーバーサイド言語」の世界です。その代表格が、今回から学んでいくPHPです。
「サーバーサイドって何?」「JavaScriptと何が違うの?」そんな疑問を抱くのは当然のこと。一言で言えば、PHPはWebサイトの「舞台裏」で働くプログラマーです。ユーザーがページにアクセスするたびに、PHPがサーバー上で仕事をして、その時々に合わせた「完成品のHTML」を瞬時に作り上げてから、ユーザーのブラウザに届けてくれます。
この記事では、難しい話は抜きにして、「曜日ごとに違う格言を表示する」という簡単なプログラムをコピペで作成します。「動いた!変わった!」という体験を通して、PHPの面白さとサーバーサイドプログラミングの第一歩を一緒に踏み出しましょう!
PHPを動かすための準備(開発環境)
PHPは、HTMLやCSSと違い、ファイルをダブルクリックしてブラウザで開いただけでは動きません。PHPコードを解釈して実行してくれる「サーバー」という環境が必要です。
「サーバーの準備なんて難しそう…」と感じるかもしれませんが、ご安心ください。最近は「XAMPP(ザンプ)」や「MAMP(マンプ)」といった、必要なものを全部まとめてインストールしてくれる便利な無料ソフトがあります。これを使えば、数クリックであなたのパソコンの中に、PHPを動かすための練習用サーバー(ローカル開発環境)を構築できます。
まだXAMPP「ザンプ」を構築してない方は、【PHP入門】XAMPPのダウンロードとインストール方法を徹底解説!を参照してください。 インストール後、指定されたフォルダ(`htdocs`など)にPHPファイルを置けば、準備は完了です!
PHPの基本:まずは現在時刻を表示してみよう
PHPのコードは、HTMLの中に<?php ... ?>という特別なタグで囲って記述します。この中に書かれたコードだけが、サーバーによって実行されます。
まずは、最も簡単な「現在時刻を表示する」プログラムを書いてみましょう。PHPにはechoという、文字を出力するための命令と、date()という現在日時を取得するための便利な関数が用意されています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPのテスト</title>
</head>
<body>
<p>サーバーの現在の時刻は、<?php echo date('Y年m月d日 H時i分s'); ?> です。</p>
</body>
</html>
このコードをtest.phpのような名前で保存し、XAMPPなどのサーバー環境に置いてブラウザでアクセスしてみてください。ページを再読み込みするたびに、秒数が更新されるはずです。これが、PHPが「動的に」HTMLを生成している証拠です!
本番:曜日ごとに違う「今日の格言」を表示する
時刻の表示に成功したら、いよいよ本日のメインテーマ、「今日の格言」機能を作ります。
実現したい処理の流れは以下の通りです。
- まず、曜日ごとのメッセージを「配列」という形でまとめて用意しておく。
date()関数を使って、今日の曜日を取得する。- 取得した曜日をキーにして、配列から今日のメッセージを取り出す。
- 取り出したメッセージを
echoで表示する。
「配列」とは、複数のデータに名前や番号を付けて、まとめて管理できる便利な箱のようなものです。早速、コードを見てみましょう。
<?php
// 日本のタイムゾーンに設定します
date_default_timezone_set('Asia/Tokyo');
// 曜日ごとのメッセージを連想配列に格納します
$messages = [
'Sun' => '「未来を予測する最善の方法は、それを発明することだ。」- アラン・ケイ',
'Mon' => '「成功への道と失敗への道は、ほとんど同じである。」- コリン・R・デイヴィス',
'Tue' => '「行動だけが、知性の真の尺度である。」- ナポレオン・ヒル',
'Wed' => '「困難の中に、機会がある。」- アルベルト・アインシュタイン',
'Thu' => '「学び続ける限り、人は老いない。」- ヘンリー・フォード',
'Fri' => '「ただ一つのもの、情熱だけが、あなたの魂を高める。」- パブロ・ピカソ',
'Sat' => '「休みとは、何もしないことではない。回復することだ。」- ダニエル・W・ジョセリン'
];
// 今日の曜日を英語の略称(Sun, Mon...)で取得します
$today_weekday_en = date('D');
// 今日の曜日に対応するメッセージを取得します
$today_message = $messages[$today_weekday_en];
?>
これがメッセージを決定するPHPのロジック部分です。date('D')で今日の曜日('Sun', 'Mon'など)を取得し、それに対応するメッセージを配列から取り出しています。
完成形:コピペで動く「今日の格言」ページ
それでは、今作ったPHPロジックとHTMLを組み合わせて、一つの完成したページを作りましょう。
【重要】以下のコードを全てコピーし、quote.phpという名前でファイルを作成してください。そして、XAMPPやMAMPの指定フォルダ(htdocsなど)にそのファイルを置いてから、ブラウザでhttp://localhost/quote.phpのようにアクセスしてください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>今日の格言</title>
<style>
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f2f5; }
.quote-card { background-color: white; padding: 2rem 3rem; border-radius: 12px; box-shadow: 0 8px 30px rgba(0,0,0,0.12); text-align: center; max-width: 600px; min-width: 500px;}
.quote-day { font-size: 1.5rem; font-weight: bold; color: #007bff; }
.quote-message { font-size: 1.2rem; color: #333; margin-top: 1rem; line-height: 1.8; }
</style>
</head>
<body>
<?php
// 日本のタイムゾーンに設定
date_default_timezone_set('Asia/Tokyo');
// 曜日ごとのメッセージを配列に格納
$messages = [
'Sun' => '「未来を予測する最善の方法は、それを発明することだ。」- アラン・ケイ',
'Mon' => '「成功への道と失敗への道は、ほとんど同じである。」- コリン・R・デイヴィス',
'Tue' => '「行動だけが、知性の真の尺度である。」- ナポレオン・ヒル',
'Wed' => '「困難の中に、機会がある。」- アルベルト・アインシュタイン',
'Thu' => '「学び続ける限り、人は老いない。」- ヘンリー・フォード',
'Fri' => '「ただ一つのもの、情熱だけが、あなたの魂を高める。」- パブロ・ピカソ',
'Sat' => '「休みとは、何もしないことではない。回復することだ。」- ダニエル・W・ジョセリン'
];
// 今日の曜日を取得
$today_weekday_en = date('D');
// 今日のメッセージを取得
$today_message = $messages[$today_weekday_en];
?>
<div class="quote-card">
<p class="quote-day">今日のあなたへ</p>
<p class="quote-message">「<?php echo $today_message; ?>」</p>
</div>
</body>
</html>
ブラウザで表示できましたか?日付が変わると、表示される格言も自動的に変わります。これがサーバーサイド言語PHPの力です!
気をつけるべき点と応用
タイムゾーンの設定
date()関数は、サーバーの設定に依存して日時を返します。日本のサーバーなら問題ありませんが、海外のサーバーを使うと時刻がずれてしまいます。それを防ぐため、PHPファイルの先頭でdate_default_timezone_set('Asia/Tokyo');のように、日本のタイムゾーンを明示的に指定するのが良い習慣です。
メッセージを自分でカスタマイズする
配列$messagesの中身を、あなた自身の好きな言葉やメッセージに書き換えてみましょう。HTML部分のデザインをCSSで変更するのも良いでしょう。コピペで動かしたコードを、自分だけのオリジナルコンテンツに作り変えることで、学習はさらに楽しくなります。
まとめ
お疲れ様でした!今回はPHPの世界への第一歩として、以下の点を学びました。
- PHPがサーバーサイドで動作し、動的にHTMLを生成する言語であること。
- PHPを動かすには、XAMPPなどの開発環境が必要なこと。
<?php ... ?>タグ内にコードを書き、echoで文字を出力すること。date()関数や配列を使って、曜日ごとに表示内容を変える簡単なプログラムが作れること。
静的なHTMLだけでは実現できなかった「変化」を自分の手で生み出せた感動を、ぜひ覚えておいてください。この小さな一歩が、Webアプリケーション開発という大きな世界への扉を開けてくれます。
次回は、PHPの基本ルールである「変数」や「データ型」について、さらに詳しく学んでいきましょう!