php

phpはサーバーサイドのプログラム

phpのプログラムはhtmlファイルの中に埋め込まれる形式で記述します。 クライアントから普通のHTMLページへアクセスがあるとウェブサーバはそのファイルの内容を送信するだけですが、phpプログラムが含まれるファイルの場合はプログラムの処理をサーバー側が行い、その結果をHTMLページとしてクライアントへ送信します。 クライアント側ではphpのプログラムは見ることは無く、その処理結果だけを見ることになります。

JavaScriptで記述されたプログラムの場合はクライアント側にJavaScriptプログラムを含むHTMLページが送信され、クライアント側でJavaScriptが実行されます。

プログラムがサーバーサイドで実行されるか、クライアントサイドで実行されるかが一番大きな違いです。

phpを動かすまで

サーバー

まず条件の1番目はphpが動いているサーバーにファイルを置くということです。htmlならば自分のハードディスクなどのファイルをウェブサーバーを通さずに直接表示することができましたが、phpはphpを使えるようにセットされたウェブサーバーに依頼しなければphp部分が動くことができません。プログラムがサーバーサイドで実行されることを忘れないでください。

phpの使えないサーバーもあります。ここも確認が必要です。授業で使っているウェブサーバーは使えるようにセットされています。現在では多くのレンタルサーバー(ホスティングサービス)でphpを使えるようになっています。

ファイル拡張子は.php

htmlファイルの拡張子は一般的には「.html」ですが。phpのプログラムが含まれるファイルの拡張子は「.php」にします。

これはウェブサーバーの設定により、.htmlのままでも可能なのですが、phpプログラムの含まれないファイルもすべてphpの記述がないかチェックしていてはサーバーにとって負担となり、サイト全体の反応速度が遅くなってしまうので普通拡張子を変えて、ウェブサーバ側がphpが含まれているファイルかどうかをすぐに判断できるようにするのです。どのような拡張子を使うのかが決まっているわけではありません。サーバーの設定に書けばなんでも使えますが、多くのサーバーが.phpを採用しています。

もう一度書きます。拡張子が「.php」であれば、ウェブサーバーはファイル内にphpプログラムが含まれていることを認識し、phpプログラムを処理した後で結果をクライアントへ送信します。そうでなければファイルの内容をそのまま送信します。

html内の記述

htmlファイルはほとんどそのまま書いていき、必要なところだけphpプログラムにします。プログラム部分は次のように<?php?> で囲み .... 部分にプログラムを書きます。

<?php  ....  ?>

例えばこんな感じ

<p>
<?php  print "こんにちは";  ?>
</p>

こんにちは

プログラムの実行結果がxhtmlの規則に合わなければならないので、忘れないように<p>などのタグを書いておきました。

タグを一緒に書かせることもできますが、別に書いた方が楽でしょう。

<?php  print "<p>こんにちは</p>";  ?>

プログラムが複数行にまたがる時は、

<?php
  ....
  ....
  ....
  ....
?>

のようにします。

もう少しプログラムらしいことを

<p>
<?php
  $mojii = "php プログラム";
  $Today = Date("l F d, Y  H:i:s") ;
  $tanka = 120;
  $kosuu = 25;
  print  "$mojii のprint。文字列はquoteの中に入れられます。<br />" ;
  print  "日時は " . $Today . "<br />" ;
  print  "単価 × 個数 = 合計<br />" ;
  print  $tanka . " × " . $kosuu . " = " ;
  print  $tanka * $kosuu ;
?>
</p>

結果はこうなります。

php プログラム のprint。文字列はquoteの中に入れられます。
日時は Friday March 29, 2024 04:51:30
単価 × 個数 = 合計
120 × 25 = 3000

課題 phptest.php

上記のプログラム内容を多少変更してphpを試しなさい。

ファイル名をphptest.phpとし、index.htmlからphpというリンクを作ること


ウェブページ(Feb.2010)
聖愛中学高等学校
http://www.seiai.ed.jp/
Feb.2009 初稿