サーバサービス/PHP入門
提供: Internet Web School
サーバサービス(PHP等) > PHP入門
目次 |
概要
第1章の意味でのサーバサービスを行わせるのに適したシステムの代表的なものとしてPHPがあります。
PHP入門
PHPの概略については次に述べられています。
PHPの書き方については次にあります。
- 英語版:http://www.plus2net.com/PHP_tutorial/PHP_introduction.php
- 日本語版:http://www.scollabo.com/banban/PHP/
PHPが実行できる練習用Webサーバを用意する
PHPの書き方を学ぶのにPHPを実行できるWebサーバがあったほうがいいでしょう。前章でそのためのいろいろな方法を紹介しましたが、必須ではありません。できたら用意した方が良い、ということです。
これから重要な例題を紹介していきます。
データ収集システム
PHPの非常に重要な機能として、データを各Webページからあるサーバに集める、というものがあります。例えばアンケートを取る、というのもそうですし、あるWebサイトで商品を売り、その注文を集める、というのもそうです。その他の例としてテスト結果を集め個々の順位を計算、ゲーム成績を集め順位を表示、各支店からの売上データの集計などがあります。
この仕組みは、2つの要素からなります。一つはデータ入力用のHTMLファイルです。もう一つはその入力されたデータを受け取りサーバに置かれたあるテキストファイルにデータを記録する記録用PHPファイルです。 入力用HTMLファイルで表示されたWebページに個々の人がデータを入力し、そこにあるsendボタンを押すと、記録用PHPファイルが自動的に呼ばれ、記録が取られます。
次は名前と性別を個々の人に入力してもらい、それらを集めて一つのテキストファイルに記録する、というシステムの紹介です。
データ入力用のHTMLファイルによる、名前と性別を入力させる画面(図1)。姓名は半角の英字で入力する。性別はラジオボタンという○印にチェックを入れる。そのあとsendボタンを押すと次の画面に移ります。
記録用PHPファイルによる画面(図2)。この画面は上の画面でsendボタンが押されると表示されます。このときはテキストファイルへの書き込みは完了しています。ここで下のreturnボタンを押すと、一番上の画面に戻り、新しい姓名と性別を追加のために入力することができます。
記録用PHPファイルにより書き込まれた、サーバ上のテキストファイルの内容(図3)。これはエクセルなどのスプレッドシートにCSVファイルとして読み込みが可能なものになっています。
データ入力用のHTMLファイルの内容
HTMLファイルはデータを記録用ファイルに保存するような機能は無いが、それができるPHP ファイルを読み出すことができます。あらかじめデータを入力するのはHTMLファイル中のform というタグを使います。
データ入力用のHTMLファイル(addrinput.html)の内容
<html>
<head>
<title>Input Form</title>
</head>
<body>
<form action="addrsave.php" method="post">
Your name:<input type="text" name="yourName"><br>
<br><input type="radio" name="sex" value="man">man<br>
<input type="radio" name="sex" value="woman">woman<br>
<input type="submit" name="submit" value="send">
</form>
</body>
</html>
上のHTMLファイルの説明
これは通常のHTMLファイルですが、6行目にPHPファイルとの連携ができる第一の鍵があります。<form>...</form> の間でデータ入力をするが、そのデータはaddrsave.phpというPHPプログラムに渡されること、その渡し方はpost という方式であること(getという方式もありますが)を指定しています。
次の7行目は名前を入力をさせるためのもので、text型のデータで入力させ、入力されたデータにyourNameという名前が付けられてaddrsave.phpに渡されることを指定しています。
次の8行目は性別を入力させるためのもので、ラジオボタンという形式(1箇所にチェックを入れさせる方式)により入力させ、そこのボタンにはman という表示がされ、押されたときにはmanという値がsexという変数に入れられてaddrsave.phpに渡されることを指定しています。
次の9行目も性別を入力させるためのもので、ラジオボタンにより入力させ、そこのボタンにはwoman という表示がされ、押されたときにはwomanという値がsexという変数に入れられてaddrsave.phpに渡されることを指定しています。
次の10行目は入力されたデータを一括してaddrsave.phpに渡すタイミングを指定するものです。submit というタイプで指定したとき、send というボタンを押した瞬間それまでに各変数に入力された値(=データ)がaddrsave.phpに送信されるのです。
記録用PHPファイルの内容
記録用PHPファイル(addrsave.php)の内容
<html>
<head>
<title>Sample of data receiving and saving by PHP</title>
</head>
<body>
<?php
$a=$_POST['yourName'];
$b=$_POST['sex'];
echo "Your name is <b>".$a."</b><br>";
echo "Your sexiality is <b>".$b."</b><br>";
$fp=@fopen('dataaddr.txt','a');
fwrite($fp,$a.", ".$b."\n");
fclose($fp); //output data
?>
<br>
<a href="addrinput.html">return to input page</a>
</body>
</html>
上のPHPファイルの説明
このPHPファイルが本章で取り上げる肝心のPHPファイルです。これは高度の情報処理をサーバ上で行わすためのものです。
6行目の<?phpはこれからPHP プログラムの記述が始まる、ということを示します。14行目の ?> がその部分の終了を表します。
7行目は入力用htmlからyourNameという変数に入れてaddrinput.htmlから送られてきたデータを別のこのPHPプログラム独自の変数 $a に代入します。$_POSTというのが送られてきた変数からデータを取り出すためのPHPの関数です。同じように
8行目は入力用htmlからsexという変数に入れてaddrinput.htmlから送られてきたデータを別のこのPHPプログラム独自の変数 $b に代入するものです。
次の9,10行目はそれらを画面に表示させるためのものです。echo というのもPHPの関数で次の文字列や変数をそのまま表示させるためのものです。
11,12,13行目はそれらのデータをサーバ上にある dataaddr.txt という名のテキストファイルに書き出すためのものです。11行目はそのファイルを書き出し用に使い出すという宣言です(ファイルのopenという)。この書き出しはそれまでに書かれたものに追加する(append)という意味で、'a' という指定がされています。12行目は実際の書き出しを指定しています。fwrite というのは書き出すためのPHP関数です。その引数の中に書かれた\n というのは改行を表します。
15行目以降は通常のHTMLファイルと同様です。PHPファイルの考え方はHTMLファイルとして展開され、それが新しいwebページとして表示させる、というものです。上のPHPファイルでは最後にまたさきほどの入力用htmlファイルに戻るためのリンクを作っています。そこのリンクをクリックすると次の人がまた名前と性別を入力できることを想定しています。
書き込まれたテキストファイルdataaddr.txt はどのように読むかというと、サーバのURLでブラウザで読むことができます(.html ファイルと同じように .txt という拡張子のファイルもブラウザで表示できます。あるはftp プログラムによって一括してダウンロードすることもできます(しかしもしこのファイルがプライバシーなどの問題で機密を要するときは関係者以外が見れないような工夫が別途必要です)。