PHPプログラムの動作について説明します
PHPがどのように動作するのかを理解しておかなければ、PHPプログラミングは理解できないと思います。
ですので、今回はPHPプログラムが動作する仕組みについて説明します。
PHPプログラムを簡単に言うと
PHPは、簡単にいうと「ブラウザからアクセスされると、何らかの処理をしたり、データを取得たりして、最終的にHTMLを生成してブラウザに返すプログラム」です。
PHPプログラムで開発されるシステムの9割型はこのタイプの処理ですので、最初のうちはこのことだけ知っておけばOKです。
HTMLとPHPの処理を図解化して比較
先ほど、PHPは「最終的にHTMLを生成してブラウザに返すプログラム」と言いました。
ということで、「HTMLを表示する処理の流れ」と「PHPプログラムの処理の流れ」を図解にして比較してみましょう。
(Webサーバーの処理についてより詳しく知りたい方は、前回の記事「【PHPプログラミング入門講座】Webサーバーの処理について詳しく説明」をご覧ください。)
HTMLを表示する処理の流れ
まず、HTMLを表示する処理の流れを図解化したのが、上図になります。
ブラウザで「http://www.example.com/mydir/hoge.html」を入力すると、「www.example.com」ドメインのサーバーにあるWebサーバーに通信し、Webサーバーは「/mydir/」ディレクトリ内の「hoge.html」を見つけて、ブラウザにファイルを返信します。
PHPプログラムの処理の流れ
次に、PHPプログラムの処理の流れを図解化したのが、上図になります。
注目すべき箇所を赤色で表示しました。
(1)ブラウザで「http://www.example.com/mydir/hoge.php」のURLを入力すると、www.example.comのドメインのWebサーバーに通信します。
(2)Webサーバーは「/mydir/」ディレクトリ内にあるPHPプログラム「hoge.php」を実行します。
(3)-(4)PHPプログラムは、必要に応じて、データベースやテキストファイル(JSON / XML / CSVなど)から、データ(文字列)を取得します。
データベースなどから取得したデータ(文字列)を使って、最終的にHTMLデータ(HTMLファイルに記述するソースと同じテキストデータ)を生成します。
(5)-(6)Webサーバーは、PHPプログラムが生成したHTMLデータを取得し、ブラウザに返信します。
以上が基本的なPHPプログラムの処理です。
つまり、PHPプログラムを使うと、HTMLデータを動的に生成することができるということです。
逆に、HTMLファイルは静的に表示するので、HTMLの内容を更新しない限りは常に同じ内容を表示し続けます。
HTML | PHP | |
---|---|---|
表示タイプ | 静的表示 | 動的表示 |
HTMLデータが更新されるタイミング | サイト制作者がサーバーにHTMLファイルをアップロードした時 | サイト訪問者がPHPにアクセスした時 |
PHPプログラムでできることの例をいくつか挙げます。
- 実行した時点での最新のデータベースのデータを表示する。
- ブラウザで入力した検索キーワードを使い、データベースを検索し、検索結果一覧を表示する。
- アクセスしたユーザーの端末の種類によって表示内容を切り替える。
- アクセスした時間によって表示内容を切り替える。
などなど。
今日は以上です。お疲れ様でした。
次回も頑張っていきましょー!
PHPプログラミング入門講座 〜 全記事一覧 〜
- PHPで開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- 現在のページ:PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理