戻る

php の基礎

1.php の使い方

 ウェブページにおいて php の命令を使う場合, ファイル名の最後を「html」ではなく「php」にします. そして php の命令は html ファイルのソースコードの中に埋め込む形で記述しますので,まずは普通の html ファイルと同じく
<html>
<head><title>〜〜〜〜</title></head>
<body>


</body>
</html>
のように書きはじめてください.そして,このようなファイルの中で php の命令を使う場合は,それを使いたい部分に

<?php
phpの命令群
?>
のように書いて php の命令を埋め込みます.なお,php ではそれぞれの命令の最後には ;(セミコロン)をつけるという決まりになっています.

2.文字列の表示

 php での表示(文字出力)命令には print と printf の2つがあります. その基本的な書式は次の通りです. このように BASIC 的な書き方も C 言語的な書き方も両方使うことができます. (これ以外に echo というのもあるようです)
print "おはよう";
printf( "こんにちわ" );
 このような表示命令を使って html ファイルを作成するのが php の基本です. 例えば,
<html>
<head><title>PHP Sample 1</title></head>
<body>
<h3>PHP Sample 1</h3>

<?php
	print "おはよう";
	print "<br>";
	printf( "こんばんわ" );
?>


</body>
</html>
という php ファイルがあった場合,このファイルが呼び出されると php の表示命令が実行され,次のような html ファイルがブラウザに送られます.
<html>
<head><title>PHP Sample 1</title></head>
<body>
<h3>PHP Sample 1</h3>

おはよう<br>こんばんわ

</body>
</html>
従って,ブラウザにとっては最初から上のような内容の html ファイルを読み込んだのと同じ結果が表示されます. 当然これだけだと,わざわざ php を使う意味がないですが, 後で説明する変数や条件分岐,繰り返しを使うと html だけではできないさまざまなことができるようになります.
 ひとまず,上の実行サンプルを見てください.sample1.php をクリックすると php ファイルの実行結果が表示されます. sample1.phps の方をクリックすると元の php ファイルの記述を見ることができます.

    sample1.php sample1.phps

3.変数

 php でも当然変数が使用でき,$(ドル記号)の後に変数名が続く形式で表されます.変数名としてつかえる文字はアルファベットと数字とアンダースコアで,先頭の文字はアルファベットかアンダースコアで始まってないといけません.また大文字と小文字は区別されます.
 変数に記憶できる値に制限はありません.数字も文字列も同じように代入することが出来ます.
$count = 10;
$name = "名無し";
 このように文字列を扱う場合はその始まりと終わりを指示するために ""(ダブルクォーテーション)を使うのが一般的ですが,' '(シングルクォーテーション)を使用してもかまいません.ただし,"" で囲んだ場合はその中に変数が含まれていた場合その内容が展開されますが,' ' で囲んだ場合は展開されません.つまり,
$message = "$count 回参照されました";
と書いた場合,$message の内容は「10 回参照されました」となりますが,' ' で囲んでいた場合はそのまま「$count 回参照されました」となります.なお,$count のあとにスペースを一つ空けているのは変数名としてつかえない文字を挿入し,変数名がそこで終わりだということを明示するためです.もしそのような文字を入れたくない場合は ${count} のように変数名を中括弧で囲んでください.
 ここまでのサンプルを置いておきます.sample2.phps の方をクリックすれば元の php ファイルの記述を見ることが出来ます.

    sample2.php sample2.phps

 また,どちらの引用符を使った場合も使った記号でない方の引用符を文字列の内部で使用することが出来ますので,
print "Let's Go!";
print '<a href="index.html">戻る</a>';
のような使い方が出来ます. このようなことを考えずに "" の中で " を使いたいといった場合は \ を前につけて \" のように書いてください.

4.配列変数

 配列形式の変数ももちろん使用できます.$kind[0]="coffee"; $kind[1]="tea"; と一つずつ代入してもかまいませんが,複数のデータを一度に代入するには
$kind = array( "coffee", "tea", "japan", "juice", "soda", "none" );
という命令があります.また配列の添え字としては数値だけでなく文字列も使用できますので,
$count["coffee"] = 0;
といった命令も使えます.状況に応じて使い分けてください.

5.制御構造

 phpにおける制御構造は基本的にC言語と同じです.すなわち,条件分岐なら
$time = date( "G" );
if( $time<11 ){
    print "おはよう";
}elseif( $time<18 ){
    print "こんにちわ";
}else{
    print "こんばんわ";
}
のように書きます.途中の elseif については,このように続けて書いても else if と区切って書いてもかまいません.両者の意味は微妙に違いますが,実行結果は同じものとなります.なお,最初の $time = date( "G" ); という命令は現在の時間を $time という変数に 0 から 23 の範囲で代入する命令です.

 次に繰り返しは次のように for 文を使った書き方と while 文を使った書き方があります. (表示命令はどちらの書き方でもかまいません)
for( $i=1 ; $i<=10 ; $i++ ){
    printf( "羊が%d匹", $i );
}
$i = 1;
while( $i<=10 ){
    print "羊が" . $i . "匹";
    $i = $i + 1;
}
また,配列変数で定義された値に対して繰り返す命令もあり,
foreach( $kind as $nomimono){
    print "$nomimono : $count[$nomimono]";
}
のように書くことで配列 $kind の値が $nomimono に "coffee" から順に代入され,実行されます.

    sample3.php sample3.phps

6.フォームとの連携

 php ではフォームとの連携も簡単です (php の設定において register_globals が有効になっている場合). すなわち,いずれかのページに
はじめまして.良かったらお名前を教えてください.<br>
<form method="post" action="sample4b.php">
<input type="text" name="visitor" size="30">
<input type="submit" name="submit" value="次へ">
</form>
のようなフォームが用意されていた場合,このフォームで呼び出されている regist.php ではフォーム要素の名前である visitor や submit に $ 記号をつけるだけでその値を参照できます.すなわち,特別な手順を踏まずに regist.php の中で
print "${visitor}さん,ようこそ";
のように使用することが出来ます.

 実行サンプル.

    入力ページ:sample4a.html  (入力ページは php でなくても問題ない)
    表示ページのソース:sample4b.phps

 ちょっと複雑なサンプル.

    入力ページ:sample5a.html
    表示ページのソース:sample5b.phps

 ちょっと実用的なサンプル.

    問題表示ページ (3パターン): quiz1.html quiz2.html quiz3.html
    解答ページのソース:answer1.phps

7.cookie の利用

 php で cookie に値を保存する場合は setcookie という命令を使いますが,この命令の書き方は次の通りです.
setcookie( "cookieの変数名", 保存する値, 保存期限 );
 ただし,cookie の設定は必ずホームページの本文が始まる前に書かないといけないので,ファイルの先頭部分の <html> などの記述が始まる前に書くようにしてください.
 また,cookie 変数の読み込みについては何もする必要はありません.php ファイルの中でその cookie 変数の名前に $ 記号をつけて変数を記述すればその cookie 変数を参照することが出来ます.
 (注意:cookie 変数とフォーム変数に同じ名前のものがあった場合,cookie 変数の方が有効になるみたいです(完全に確認したわけではないです).)

 サンプル (じゃんけん)
  何勝何敗何分けかという結果を cookie で記憶しています.

    何を出すか選ぶページ:janken.html
    勝負を判定して表示するページのソース:pon.phps

8.サンプル

 以下にフォームや cookie を利用した php のサンプルとして「数当てゲーム」のサンプルを掲載しておきます.

 数当てゲーム
 数当てゲームのソース

 以下にファイルの読み込みや書き込みを使用した php のサンプルを掲載しておきます.説明は後日掲載.

 動くフォルダ (Netscape 4.7 ではうまく動きません)
 動くフォルダのソース


戻る