web制作のしおり

日々の学習をアウトプットします。

73.PHPで書いてみよう ~PHPファイルにHTMLと併せて書く~

素朴な疑問なんですが、PHPファイルにやたら<?php ?>って書いてると思います。

そこれと同時にHTMLを大量に書いてもページが正しく表示されるのは何故?

 

ということで、今日もやっていきましょう。

 

PHPとHTMLの混在したPHPファイル

サーバーで、どうやってこのPHPファイルが処理されているかがイマイチわかっていないです。

ということで調べてみました。

ざっくりのイメージですが登場人物は3人

  1. ブラウザ
  2. サーバー
  3. PHPプログラム

流れを見ていきます。例えば、

 

ブラウザに、http://www.test.com/index.phpのURLを入力すると

http://www.test.com/のサーバーに対して通信を開始

サーバーはindex.phpを実行、PHPプログラムが実行され処理が始まる。

 

PHPプログラムは<?php … ?>で囲まれた内側はルールに基づいて適切に処理、外側に書かれた文字はすべてそのままで、処理が終わると、すべてテキストの状態でサーバーに渡されます。

 

サーバーは受け取ったテキストを要求があったブラウザに返します。

ブラウザはHTMLを解釈して表示するので、PHPプログラムからサーバーに渡された時点のテキストが「正しいHTML」で書かれたテキストになっていれば、Webページとして表示されるわけですね。

 

実際に書いてみる

HTMLをPHPを使って一部を書いてみましょう。

まずはベースとなるHTMLから

 

<body>

<h1>これはテスト</h1>

<img src="./image/test.png">

<p>ここは画像の名前</p>

</body>

 

これをPHP連想配列を使って書いてみます。

 

PHPを使うと

<?php

$image = ["src" =>"./image/test.png", "text"=>"ここは画像の名前"];

?>

<body>

<h1>これはテスト</h1>

<img src="<?php echo $image["src"];?>">

<p><?php echo $image["text"];?></p>

</body>

 

こんな形で、タグの中にPHPプログラムを書き込むこめば、サーバーに渡す前には処理されてHTMLになっているというわけです。

 

上のコードでは、PHPで書いた方がコードが長くなってしまっていますが、

これが仮にCARDとかをPHPの配列とforeachを使って書いたりしたら、

めちゃめちゃコードの量減ると思いませんか?

 

面白くなってきた、PHP

 

今日のまとめ

  • PHPプログラムは処理が終わるとテキストをサーバーに渡す
  • サーバーは受け取ったテキストをブラウザに返す
  • 正しいHTMLならWebページが表示される。
  • PHPを使って「書き方」を工夫するとぐっと楽になる。
  • サーバー側で処理した後のテキストがかえってくるので、動的にページを変えることも可能

 

PHPまだまだ始まったばかりですね。

これからいろいろな書き方、使い方を学んでいくのが楽しみになりました。

 

では、また。