PHPを始める前に知りたい、基本的な文法といくつかのタグ
関数・変数
せっかくPHPを使っているので、プログラムっぽいことをしてみましょう。
(1)ランダムな数値を出力する
アクセスするたびに結果が変わるように、ランダムな数値を出力してみます。
<ファイル>
<html> <body> <p>今日のラッキー指数は <?php echo rand(); ?> ですよ!</p> </body> </html>
<実行結果>
<html> <body> <p>今日のラッキー指数は 41522939 ですよ!</p> </body> </html>
rand()
は、ランダムな数値を作ってくれる関数です。関数とは、仕組みを知らなくても、ルールさえ知っていれば使うことができるツールです。もちろん自分で関数を作ることもできますし、PHPに元から用意されている便利な関数も相当数あります。それぞれの関数にはそれぞれの書き方のルールがありますので、ぜひマニュアルを活用してください。PHPのバージョンによって関数のルールが変わることもありますので、注意してくださいね。
PHPのマニュアルへはこちらから行けますが、関数を調べたい時は、http://php.net/rand のようなショートURLをブラウザに直接打ち込むこともできます。関数については、後日また詳しく解説します。
(2)閲覧者の情報を出力する
次は画面を見ている人の情報を出力してみましょう。ブラウザはサーバーにリクエストを送る際、普通の人が想像している以上の情報を一緒に送っています。
PHPはこのような情報をサーバーから取得し、変数という入れ物に格納しています。echo
では変数に格納された情報を出力することもできます。変数について詳しいことはまた後日取り上げますので、今回はだいたいの雰囲気を分かっていただければ大丈夫です。
<ファイル>
<?php echo "あなたが直前に見ていたサイトは「"; echo $_SERVER["HTTP_REFERER"]; echo "」です。\n"; echo "あなたがこの画面を見ているツールは「"; echo $_SERVER["HTTP_USER_AGENT"]; echo "」です。\n"; ?>
$_SERVER["HTTP_REFERER"]
と $_SERVER["HTTP_USER_AGENT"]
が変数です。この中に、直前に見ていたサイトの情報と、画面を見ているツール(ブラウザ)の情報がそれぞれ入っています。
<実行結果>
あなたが直前に見ていたサイトは「http://localhost/index.php 」です。 あなたがこの画面を見ているツールは「Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36」です。
実は、上の例は悪い例なのです。ブラウザから送られてきた情報は、そのまま使っては絶対にいけません。少し技術に詳しい人なら誰でも、これらの情報を悪いように書き換えることができるからです。例えば掲示板を想像してみてください。入力されたコメントの他に、その人が使っているブラウザの情報を自動で登録するとします。ブラウザから送られてきた情報をそのまま登録して表示すると、このようになりますね。
しかしもし、ブラウザの情報がいかがわしいサイトへのリンクにすり替えられていたらどうでしょう。ブラウザの情報の代わりにいかがわしいリンクが登録されてしまい、画面を見た別の人が、そのリンクをクリックしてしまうかもしれません!掲示板を作った人は悪いことをするつもりがないのに、悪意のある第三者に利用されてしまうのです。
このような場合にどうしたら良いかは、また後日取り上げたいと思います。
PHPに限ったことではありませんが、変なデータが送られてきた場合や、何かの不具合でデータが取れなかった場合などなど、通常は起こりえないことについても、すべてプログラミングしておく必要があるというのが、プログラミングの難しい部分です。しかも、そのような処理の方が、メインのプログラムよりも多くなることがほとんどなのです。単に動くものが作れることと、製品が作れることの差はこのようなところにあります。
大文字小文字
この後は少し簡単な話を続けて終わりたいと思います。echo
のようなキーワードも rand()
のような関数も、大文字と小文字を区別しません。以下の各行はどれも同じ処理になります。ですが、普通は一行目のように小文字で(マニュアルで指定されている通りに)書きます。
<ファイル>
<?php echo rand(); ECHO RAND(); Echo Rand(); EchO rANd(); ?>
ホワイトスペース
PHPのコードの体裁についてです。これまでの例のように、PHPのコードにはところどころにセミコロン(;)が書かれています。これは文の区切りを表します。
<?php echo "<p>"; echo "ようこそ!"; echo "</p>"; ?>
セミコロンや echo
の前後には、スペースやタブ、改行などの「ホワイトスペース」と呼ばれる文字があってもなくても構いません。普通は人間が読みやすいように、echo
の後ろにスペースを入れたり、一文ごとに改行しますが、このように詰めて書くこともできますし、
<?php echo "<p>"; echo "ようこそ!"; echo "</p>"; ?>
このように離して書くこともできます。
<?php echo "<p>"; echo "ようこそ!"; echo "</p>" ; ?>