筆者はPHPを何人かの方に対面で教えたことがあるのですが、前回の記事の内容まで説明した際に、よく質問されることがあります。それは、「PHPで文字を表示したけど、HTMLでもできるじゃん」 「HTMLと何が違うのかわからない」などの質問です。前回の記事では、PHPのコードの始まりと終わり、そしてechoという命令があるよ〜というところまで理解していただけたかと思います。今回はHTMLにはできないことをPHPで簡単に実現してみようと思います。今回の内容はPHPのほんの一部の機能です。

PHPを使う理由

3年以内に更新されました。情報が古い可能性があります。
更新日 : 2019年02月26日

筆者はPHPを何人かの方に対面で教えたことがあるのですが、前回の記事の内容まで説明した際に、よく質問されることがあります。

それは、「PHPで文字を表示したけど、HTMLでもできるじゃん」
「HTMLと何が違うのかわからない」などの質問です。

PHPの記述方法では、PHPのコードの始まりと終わり、そしてechoという命令があるよ〜というところまで理解していただけたかと思います。

今回はHTMLにはできないことをPHPで簡単に実現してみようと思います。
今回の内容はPHPのほんの一部の機能です。

ですが、PHPを使う意味が少しでも理解できると、モチベーションも上がるのではないかと思うので今回の記事を投稿しました。

前回の記事と、HTMLの復習

前回のPHPでは、echo "〜"という命令をすると、PHPが処理しての部分をブラウザに表示してくれることがわかりました。

また「HTMLとは」では、基本的なHTMLの書き方や存在意義を説明したかと思います。

HTMLは文書の構造と内容を表示するだけ

HTMLはプログラミング言語というより、文書の構造を示すことや、その内容の表示形式を指定するという役割だけを持っています。

どういうことかというと、<html> 〜 </html>の部分を、見出しやタイトル、どの位置にどんな内容を表すかを見てくれる人に教えることしかできないのです。

そして肝心の内容自体は、HTMLファイルの中身を変更をかけない限り、変えることができません

もう少し例を使って説明してみましょう。

今の日時を閲覧者に表示したい

「現在の日時」をクライアントに表示してあげたい場合を考えてみましょう。

まずはHTMLだけでできるかどうか試してみましょう。

HTMLで現在の日時を秒単位で表示

HTMLで現在の日時を表示するためにはどうすれば良いでしょうか。

HTMLは構造やその中身を伝えるだけです。つまりHTMLの<body>に現在の日時をファイルを変更し、それをサーバーに配置してあげるしかありません。。。

HTMLに記載した日時であれば表示することはできますが、アクセスした瞬間の現在の時間を表示することができません

PHPで現在の日時を秒単位で表示

今度はPHPで実現してみます。

あなたもコードをコピーして同じようにやってみてください!

macOS用のPHPの環境構築記事windows用のPHPの環境構築記事のようにhtdocsフォルダに、datetime.phpという名前でファイルを作成してみましょう。

ファイルの中身は以下です。

<?php
    date_default_timezone_set("Asia/Tokyo");
    echo date("Y年n月j日 G時i分s秒");
?>

たったの4行ですね。(笑)

とりあえずこれでファイルを上書き保存したら、ブラウザでアクセスしてみましょう。

現在の日時をPHPで表示
現在の日時をPHPで表示

上記の画像のようなURLでアクセスするとアクセスした瞬間の日時が表示されるはずです。

ページをリフレッシュすると、更新されて、日時も更新した瞬間の日時になるかと思います。

日時の表示で行ったこと

先程のファイルで何を行ったのか少しご説明します。

まず、date_default_timezone_set("Asia/Tokyo"); ですが、PHPの時刻設定を日本時間に設定する命令です。ある程度英語の文のような命令なのでわかりやすいかと思います。

次にecho date("Y年n月j日 G時i分s秒”);ですが、まずはechoですね。
date("Y年n月j日 G時i分s秒”)を表示してくださいという命令です。前回と同じですね。

実際のdate("Y年n月j日 G時i分s秒”)ですが、表示する内容もPHPの命令で決められています。dateという命令では、「丸括弧内の形式で年月日や何時何分何秒まで文字で表す」ということをやってくれます。

つまりここは、処理された日時によってPHPが自動的に計算して出してくれるということです。そしてdateはあくまで 文字で表すだけなので、実際の表示をechoでやってもらう2段構えの命令となっています。

静的なページと動的なページ

このように、PHPを使用することによって、アクセスするタイミングによって内容を自動的に変更したり、同じページなのにクライアントによって表示内容が変わっているというような処理を行うことができます。

このように時間やクライアントによって同じページ(URL)でも内容が変わるページのことを動的なページと言います。

TwitterやFacebookのホームページなんかもそうですが、トップページにアクセスするたびにタイムラインが更新されて表示されたりしますよね。それはPHPなどのプログラムで動的なページを表示しているからです。

逆にいつでも誰でも同じページが表示されるページのことを静的なページと言います。

まとめ

今回はPHPを使う理由を簡単な例を使って説明しました。

HTMLだけでは決められた構造で内容を表示するという役割しかなく、静的なページしか作れません。

PHPを組み合わせる事により、PHPに処理をさせながらHTMLの内容を毎回変更させたりして動的なページを作ることができます。

PHPのほんの一部に触れて頂きましたが、もっと勉強することにより、TwitterやFacebookなどのようにユーザー登録をさせたりユーザー専用のページを勝手に作ってくれるようなプログラムを作ることができるようになります。