カウンターを作ろう

簡単カウンターの考え方

 カウンターとは、ホームページを閲覧するたびに増えていくものです。
そもそも、PHPはHTMLを出力するのですから、このプログラミングは簡単です。唯一、考慮すべきことは、カウントした数値をどこに保存しておくかと言うことです。

 これには、2つの方法があると思います。
1.データファイルを利用して、そこに記録しておく。
2.データベースを利用してカウントする。
 ここでは、前者のデータファイルを利用してカウントする方法を選びます。どちらの場合でも、考え方は同じです。


 それではスクリプトを紹介します。
【counter.php】->実行結果はこちら

 ここで新しく出てきたファイル関数を説明します。
$fp=fopen(”ファイル名”,”r”)
fclose($fp)
 これは、ファイル名のファイルを”r”と言う方法で利用可能にするという意味です。”r”とは、読み込み専用、後に出てくる"w"は、書き込み(上書き)用で、ファイルが無ければ新規作成と言う意味があります。$fpと言う変数ですが、ファイルのなかの、どのデータを利用するのかを指すアドレスが入ります。一般的に、コンピューター側がデータを制御するための決める値で、こちらが積極的にこの値を変更することはありません。”r”や”w”の場合は、ディフォルトでファイルの先頭を指し示し、読み書きすると、データーの大きさだけ後ろへ移動します。また、fcloseは、$fpで指定で利用しているファイルを利用不可にすることを表します。fopenとfcloseは常に対で使われる必要があります。

fgets($fp)
 $fpの示すデータを1行分読み込む
 その後、$fpは、1行分のデータの後(次のデータの先頭)を示すので、
 連続して行うと、次のデータ、次のデータと読み込むことになる
fwrite($fp)
 $fpの示すデータに書き込む。
 その後、$fpは、書き込むデータの直後を示すので、
 連続して行えば、後ろへ後ろへ、データを連結していくことになる

 あとは、簡単ですので、スクリプト中のコメントだけで理解できると思います。データファイルはメモ帳でも開けるテキストデータですから、データの種類を増やしたり、表示方法を変えることで、月間別、日別のカウントなどを行い、アクセス解析も可能です。0〜9までの数値を示すCGを用意すれば、簡単にビジュアル的なカウンターになるでしょう。

このカウンターの注意事項

 一般的にレンタルサーバーなどから提供されるカウンターは、別の場所にスクリプトがあり、Javascriptなどで、そのページを呼び出して値を得ていますが、今回のPHPスクリプトは、ページにスクリプトが埋め込まれています。ゆえに、拡張子がphp形式になっていないとカウントしません。

 このスクリプトをそのまま利用すると、最初の1回だけ警告文が出ます。それは、データファイルが無い状態で、fopen(ファイル名,”r”)があるからです。なお、書き込むときの"w"は、ファイルが存在しない場合、自動的に作成するという意味もありますので、2回目からは正常に動きます。

 繁茂に、データファイルにアクセスするわけではありませんが、同時に多くの人がアクセスした場合の処理をしていないので、不安があります。アクセス数が多い場合は、ファイルロックなど、何らかの対策が必要になります。(今回は、説明しません)

<数当てゲーム>-Top-<1行掲示板>