PHP超入門 (38)
今回は、今までお話してきた内容を応用して、非常に単純ですが、実用可能な
アクセスカウンターを作ってみたいと思います。
ただし、ここで、また新しい関数が登場しますので、それについては予めご承
知ください。
■アクセスカウンターの考え方
アクセスカウンターとは、どういうものかは知っていますよネ。
そう、誰かがホームページにアクセスする度に、何人目のアクセス者かどうか
その人数を示す例のアレです。
考え方としては、
以前、例として挙げた、
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\090-1.txt","r+");
fwrite($file,"あなたの実年齢は25歳です。")
fclose($file);
?>
----------------------------------------------------------
というプログラムを利用してみたいと思います。
ただし、これが唯一の正解ということではなく、あくまでも、単なる1例にす
ぎないということで、誤解をしないようお願いします。
他にも、イロイロなアクセスカウンターの作り方はあります。
作り方の流れとしては、
最初にゼロを書いた「count.txt」というテキストファイルを用意する。
↓
最初のホームページのアクセス者があったら、fopen関数で引数を"r+"とし
て、「count.txt」に書かれているゼロを変数に読み込む
↓
変数に1を足す
↓
fwrite関数で、「0+1」の結果を「count.txt」に上書き保存する
↓
結果として、今まで「count.txt」に書かれていたゼロの代わりに、1が記
録される
↓
fclose関数でファイルを閉じる
↓
必要ならば、記録された1をブラウザに表示させる。
ということになります。
ですから、2人目のアクセス者は、「count.txt」に記録されている「1」に1
を足して、「2」、3人目のアクセス者は、同様に「count.txt」に記録されて
いる「2」に1を足して、「3」、4人目のアクセス者は。。。
というような具合になります。
■実際のプログラム
まず、準備として、「0」と書いたファイル「count.txt」を、「C:\inetpub\w
wwroot\php」フォルダに保存します。
そして、
1.ホームページにアクセス者があったら、ファイルを開く
$file = fopen("C:\\inetpub\\wwwroot\\php\\count.txt","r+")
2.ファイルの中身を変数に読み込む
$count = fgets($file)
3.「$count」を1増やす
$count = $count + 1
4.今は謎の行為
rewind($file)
5.結果をファイルに書き込む
fwrite($file,$count)
6.ファイルを閉じる
fclose($file)
以上の説明をPHPのプログラムとしてまとめると、
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\count.txt","r+");
$count = fgets($file);
$count = $count + 1;
rewind($file);
fwrite($file,$count);
fclose($file);
?>
----------------------------------------------------------
ということになります。
これを「093-1.php」の名前で「C:\inetpub\wwwroot\php」フォルダに保存し
ます。
その後、「http://localhost/php/091-1.php」と入力してください。
そうすると、画面上では何も変化が現れませんが、
「C:\inetpub\wwwroot\php」フォルダにある、「count.txt」の中身をメモ帳
で見てみてください。
数が1増えて、「1」が書き込まれているのが分かります。
でも、この状態では、ブラウザに「count.txt」の中身を表示できません。
その場合には、上のPHPプログラムの最後の行に一行を加えます。
----------------------------------------------------------
<?php
$file = fopen("C:\\inetpub\\wwwroot\\php\\count.txt","r+");
$count = fgets($file);
$count = $count + 1;
rewind($file);
fwrite($file,$count);
print("あなたは".$count."人目のお客様です。");
?>
----------------------------------------------------------
そうすれば、アクセス者数をブラウザの画面に表示することができます。
以上が、今までお話をしてきた内容を基に、作成したアクセスカウンターの例
です。
ただ、初めにも言いましたが、今回初めて出てきている関数もありますし、こ
のままで一応、問題なく動くことは動くのですが、大きな問題が1つあります。
次回は、それらについて簡単にお話しようと考えています。