PHPのページ

(last modified : 2011/04/13)
  1. PHPとは?
  2. なぜPHPを使うのか?
  3. PHPに関するリンク集

PHPとは?

PHPとHTMLに直接記述するタイプのスクリプト言語です。実行はサーバー側で行なわれ HTMLとしてブラウザーに送られます。高機能なWebDBアプリケーションを容易に 作成できるスクリプト言語として普及しつつある言語です。PHPはApachにモジュー ルを組込むことで実行できるようになります。また、PostgreSQLやMySQLなど RDBSとの連携が可能です。

なぜPHPを使うのか?

WebDBなどのようなWebサーバーとRDBS(リレーショナルデータベースサーバー) の組み合わせによるWebアプリケーションサーバーの構築が近年注目されていま す。このようなWebサーバーとRDBSとの連携ではRDBSにデータをリクエストし、 受け取ったデータを加工してHTMLで出力するという動作が頻繁に行なわれます。 HTMLを出力する枠組としてPerlなどによって記述されたCGIがありますが、 HTMLファイルに直接埋め込むことができるという点でPHPに長所があります。 また、インタプリタ言語であるので作成、テストが簡単に行えることも見逃せま せん。

HTMLのタグ中に直接スクリプトを記述することにより、スクリプトの実行が可能と なります。<? ... ?>で囲まれた部分がスクリプトと識別されます。

例.1

例えば、1から10までを表示するスクリプトを考えてみましょう。1から1つずつ値を大きくしていきながら10まで数えるので,forを用いてループを作りprintで表示させていきます。ここで,PHPではperlなどと同様に変数名の前に,$が必要であることに注意しましょう。

1 : <?
2 : for($i=1;$i<=10;$i++){
3 :   print "[" . $i ."]" . "\n";
4 : }
5 : ?>

この例では、以下のような実行結果が表示されます。

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

例.2

ファイルを開きそのファイルの内容を表示するプログラムを考えてみましょ う。ファイルを開くためにはfopenという関数を使います。fopenは fcloseと組みで使う必要があります。htmlentitiesという関数は HTMLの書式を無効化するための関数です。fread関数は$fpで指定されたファイル を読み込みます。また、filesize関数は指定されたファイルの大きさを 返す関数です。

1 : <?
2 : $fp = fopen("./hoge.txt","r");
3 : $contents = fread($fp,filesize("./hoge.txt"));
4 : print htmlentities($contents);
5 : fclose($fp);
6 : ?>

この例ではファイルhoge.txtの内容が表示されることになります。

<^_^> <^_^><^_^>

例.3

コマンドを実行してその結果を表示するプログラムを考えてみましょう。UNIXコマンド を実行するためにはpopenという関数を使います。 popenはpcloseと 組みで使う必要があります。dateというUNIXコマンドは現在の時刻を表示するための コマンドです。

1 : <?
2 : $pp = popen("/bin/date","r");
3 : $date = fgets($pp,256);
4 : print $date;
5 : pclose($pp);
6 : ?>

この例では現在の時刻が表示されます。


例.4

フォームからデータを取得しそのデータを表示するプログラムを考えてみましょう。変数の受渡しは<FORM><INPUT>を使って読み込みます。ここで<INPUT>のNAMEに注目しましょう。NAMEで指定された変数名でデータの受渡しがなされることに注意してください。

1 : <?
2 : if(strlen($name) ==0 || strlen($old) == 0){
3 :   print("<P>\n");
4 :   print("<FORM METHOD = PUT ACTION=\"index-j.php3\">\n");
5 :   print("name:<INPUT TYPE=text NAME=name SIZE=10 VALUE=\"$name\">\n");
6 :   print("old:<INPUT TYPE=text NAME=old SIZE=10 VALUE=\"$old\">\n");
7 :   print("<INPUT TYPE=submit>\n");
8 :   print("</FORM>\n");
9 :   print("</P>\n");
10 : }else{
11 :   print "you are ${name} and ${old} years old.\n";
12 : }
13 : ?>

この例では、もし$name,$oldがの両方が入力されていなければ、フォームを出力 し、両方共に入力済みの場合には"you are (名前) and (年齢) years old."と出力する ようになっています。

name: old:


例.5

乱数を発生させる例を考えてみましょう。乱数の発生はおみくじプログラムの作成にはなくてはならない関数です。srand()関数で乱数系列を初期化して、rand(min,max)(min:最小値,max:最大値)関数で乱数を発生させています。0.5以上ならば"O"を以下ならば"X"を出力します。

1 : <?
2 : srand((double)microtime()*1000000);
3 : if(rand(0,1.0)>=0.5){
4 :   print "O\n";
5 : }else{
6 :   print "X\n";
7 : }
8 : ?>

この例では確率1/2で"O"と"X"のどちらかが表示されます。

X

PHPに関するリンク集

PHPに関するホームページのリンクを以下に示しておきます。PHPのドキュメント データベースとの連携の例など、ネット上に豊富な資料が公開されています。
  1. 日本PHPユーザ会
  2. PHPマニュアル(日本語版)
  3. PX: PHP Code Exchange