Webサイト制作の学習を始めると、必ず出会うのが「HTML」と「PHP」です。 「どちらもWebページを作るものみたいだけど、何が違うの?」 「どうやって使い分けるの?」 このような疑問を感じる方も多いのではないでしょうか。
結論から言うと、HTMLとPHPは全く異なる役割を持つ言語であり、お互いを補い合うことでWebサイトは作られています。 この2つの関係性を理解することは、Web開発の第一歩です。
この記事では、HTMLとPHPそれぞれの役割と決定的な違い、そして両者がどのように連携するのかを、サンプルコードを交えながら分かりやすく解説します。
HTMLの役割:Webページの骨格を作る
HTML (HyperText Markup Language) は、Webページに表示されるテキストや画像などの要素に「見出し」「段落」「画像」といった意味を与え、ページの骨格を組み立てるための言語です。
HTMLファイルに書かれた内容は、誰が、いつ、どこからアクセスしても、常に同じものが表示されます。このような仕組みのWebページを**「静的ページ」**と呼びます。会社の情報ページや、一度作ったらあまり更新しないお知らせページなどがこれにあたります。
PHPの役割:Webページに動きと機能を与える
一方、PHP (Hypertext Preprocessor) は、サーバー側で動作するプログラミング言語です。 HTMLがページの「骨格」だとすれば、PHPは**「知能」や「心臓」**にあたります。
PHPは、アクセスされたタイミングや状況に応じて、表示する内容を動的に変化させることができます。 例えば、以下のような機能はPHPによって実現されます。
- ログインしているユーザーの名前を表示する(「ゲストさん」→「田中さん、こんにちは」)
- 時間帯によって「おはようございます」「こんにちは」の挨拶を変える
- お問い合わせフォームから送信された内容を受け取り、メールを送信する
- ブログの新着記事を自動でトップページに表示する
このように、PHPは状況に応じて異なる結果を返す**「動的ページ」**を作るのが得意です。
一目でわかる!HTMLとPHPの関係性
HTMLとPHPは、どちらが優れているというものではなく、それぞれの得意分野を活かして協力し合っています。
項目 | HTML | PHP |
役割 | ページの骨格を作る(マークアップ) | ページの機能や動きを作る(プログラミング) |
種類 | マークアップ言語 | プログラミング言語 |
動作場所 | ブラウザ(クライアントサイド) | サーバーサイド |
生成するページ | 静的ページ(内容は常に同じ) | 動的ページ(内容は状況により変化) |
Webページの土台となる骨格をHTMLで作り、ユーザーごとに内容を変えたり、データベースと連携したりといった機能的な部分をPHPが担当する。これが基本的な関係性です。
実践!HTMLとPHPを連携させる方法
では、具体的にどのようにしてHTMLとPHPを連携させるのでしょうか。主な方法を2つご紹介します。
1. HTMLの中にPHPを埋め込む
最も一般的な方法が、HTMLファイルの中にPHPのコードを埋め込む方法です。ファイルの拡張子を.php
にすることで、HTMLの中に<?php
と?>
で囲んだPHPコードを記述できます。
<?php ... ?>
の部分だけがサーバーでPHPプログラムとして実行され、その結果がHTMLに変換されてブラウザに送られます。
サンプルコード:現在の日付と年を動的に表示する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPとHTMLの連携</title>
</head>
<body>
<h1>Webサイトへようこそ</h1>
<p>
本日は、<?php echo date('Y年m月d日'); ?> です。
</p>
<footer>
<p>Copyright © <?php echo date('Y'); ?> My Website.</p>
</footer>
</body>
</html>
このコードでは、date('Y年m月d日')
というPHPの命令が実行時の日付(例:「2025年09月24日」)という文字列に置き換えられてから、ユーザーに表示されます。フッターの年も自動で更新されるため、毎年手で修正する必要がありません。
2. PHPプログラムからHTMLを出力する
PHPのecho
(出力命令)を使って、HTMLタグそのものをプログラムで生成することもできます。これにより、条件に応じて表示するHTMLを丸ごと変えるといった、より複雑な処理が可能になります。
サンプルコード:時間帯によってメッセージを変える
<?php
// 現在の時間を取得(例:13)
$current_hour = date('G');
$greeting_message = '';
if ($current_hour < 12) {
$greeting_message = "おはようございます!";
} elseif ($current_hour < 18) {
$greeting_message = "こんにちは!";
} else {
$greeting_message = "こんばんは!";
}
// 変数の内容に応じてHTMLを出力する
echo "<!DOCTYPE html>";
echo "<html lang='ja'>";
echo "<head><title>動的な挨拶</title></head>";
echo "<body>";
echo "<h1>{$greeting_message}</h1>";
echo "<p>PHPが現在の時間に合わせて挨拶を生成しました。</p>";
echo "</body>";
echo "</html>";
?>
この例では、PHPがまず現在の時間を判断し、それに応じた挨拶文を生成してから、HTML全体を出力しています。
まとめ
HTMLとPHPの違いと関係性について、ご理解いただけたでしょうか。
- HTMLは、Webページの静的な骨格を作る。
- PHPは、Webページに動的な機能を追加する。
- 両者は協力し合うことで、高機能なWebサイトを実現している。
この2つの言語の役割をしっかりと区別し、連携方法をマスターすることが、Web開発者への重要なステップとなります。