PHP基本動作
ここでは、PHPの基本的な動きをメモしておく。作成したテキストファイルをFTPでPHPが動くWebサーバーに送ることができることが条件。
文字を表示させる
- とにかく次のような内容のファイルをつくって、test.htmlとかなんとか名前をつけて、サーバーに送り込んでみる。
<html> <HEAD> <TITLE>タイトルはテスト</TITLE> </HEAD> <body> Hello world. </body> </html>
- それをブラウザで開いたら、Hello world.と表示される。これはただのHTMLファイル。では、これはどうだろうか。ファイル名はtest.phpとする。
<?php echo "<html>"; echo "<HEAD>"; echo "<TITLE>タイトルはテスト</TITLE>"; echo "</HEAD> "; echo "<body>"; echo "Hello world."; echo "</body>"; echo "</html>"; ?>
- このファイルには .php という拡張子をつける。
- これで同じ表示になる。これは、PHPというサーバー側のプログラムが、test.phpを解釈してその中の命令(一行目なら<html>と出力しなさい。。など)から新たにHTMLをどんどんその場で作り出し、ブラウザに送り出した結果である。そして上下の<?phpと?>がPHPスクリプト(プログラム)の始めと終わりの合図となる。これは<?〜?>でも良い場合が多い。
- HTMLとPHPスクリプトは混在することができる。以下のファイルでも同じ結果になる。
<html> <HEAD> <TITLE>タイトルはテスト</TITLE> </HEAD> <body> <? echo "This is a test."; ?> </body> </html>
変数を使う
- 次のような内容のファイルをつくって、test2.phpとして、サーバーに送り込んでみる。
<html> <HEAD> <TITLE>タイトルはテスト2</TITLE> </HEAD> <body> <? //変数を定義して数値を入れる。 $aaaa = 1; $bbbb = 2; $cccc = $aaaa + $bbbb; //表示する。 echo $aaaa; echo "<br>"; echo $bbbb; echo "<br>"; echo $cccc; ?> </body> </html>
- これで1,2,3と行をかえて表示されるはず。
昔学校で習ったBASIC言語のような手軽さである。とりあえず宣言も必要ないみたい。
ここで、//はPHPのコメント文。この//の後に続く文字は無視される。 - 変数で文字列を扱うこともできる。
<html> <HEAD> <TITLE>タイトルはテスト3</TITLE> </HEAD> <body> <? //変数を定義して数値を入れる。 $xxxx = "これが変数X"; $yyyy = "これが変数Y"; $zzzz = $xxxx.$yyyy; //表示する。 echo $xxxx; echo "<br>"; echo $yyyy; echo "<br>"; echo $zzzz; echo "<br>"; echo $xxxx."で、".$yyyy."です。"; ?> </body> </html>
<結果>
これが変数X これが変数Y これが変数Xこれが変数Y これが変数Xで、これが変数Yです。
- ここでは、「.」は文字列をつなげるという意味になる。また、 echo $xxxx."で、".$yyyy."です。"; のように柔軟に文字列を扱い、出力させることもできる。
関数を使う
- 関数の詳細は別の機会にして、便利な関数を少しつかってみる。test3.htmlとして、サーバーに送り込む。
<html> <HEAD> <TITLE>タイトルはテスト3</TITLE> </HEAD> <body> <? //日付を扱う関数 echo "UNIXタイム:1970年1月1日からの通算秒数"; echo time(); echo "<hr>"; $utime=time(); echo "<br>今日は"; echo date("y",$utime); echo "年"; echo date("m",$utime); echo "月"; echo date("d",$utime); echo "日"; //環境変数を取得する関数。 echo "<BR>"; echo "あなたのIPアドレスは:"; echo $_SERVER["REMOTE_ADDR"] ; echo "<br>"; echo "あなたの使用ブラウザは:"; echo $_SERVER["HTTP_USER_AGENT"] ; ?> </body> </html>
<結果>
UNIXタイム:1970年1月1日からの通算秒数1073479012 今日は04年01月07日 あなたのIPアドレスは:10.0.... あなたの使用ブラウザは:Mozilla/5.....
- ここで、 date("d",$utime) 関数は$utimeに格納された秒数から日を取り出す関数。
$_SERVER関数はサーバーの環境変数を取得する関数である。サーバーが取得した情報を環境変数として取り入れることができる。PHPには非常に多くの関数が用意されているが、ここではこれ以上ふれない。