fgetsとrewindを使った簡単なアクセスカウンターの作り方 : ぺたっとPHPサンプルソースコード |
ファイルの読み出し と ファイルの書き込み の両方が理解出来ていればわざわざここで書く必要は無いことだが、
コピペで使いたいという場合と、簡単な解説です。
と言う事で前2ページを見ていることを前提に、今回新たに使う関数は
fgets と rewind
このふたつ。
先にまとめると
|
phpページのカウンターを表示させたい部分に直接これを書いてもいいし、includeしてもいい。
"r+"で開いているのでデータを保存するファイル(この例ではtest.txt)は0だけを書いたものを予め作っておく。(文字コードに注意)
fgetsはファイルから1行だけ読み込む関数。
普通のアクセスカウンターなので1行しかないからこれでOK。
rewindはファイルポインタを先頭に戻す関数。
fgetsで読み出すと、ファイルポインタが終端まで行ったとこで止まるのでそれを先頭に戻す。
$count++;は読み出した数字に1を足している。
流れは
と言う感じ。
ここで問題は データを保存するファイルは"r+"モードで開いている以上、 あらかじめ作っておかなくてはいけない。 文字コードによっては化けるし期待通りに動いてくれないので、 適当に文字コード指定で保存する事。
ちなみに、var_dump($count);で型と値が出力されるので確認できるが、 数字しか書き込んでないのに常にstring・・・。 キャストもあるけどそれで正常に動いてしまうという。 Cなどでは明示的に型宣言するので、違和感ありまくり。
蛇足だが、上記ではアクセスカウンターの数字はテキストになる。
画像にしたい場合は足した後の$countの値を1バイトずつ分解し、
printする時に(分解保存した変数名[桁数] . ".gif")
のような感じでforで繰り返し表示させればよい。
もちろん0.gif〜9.gifのファイルは予め作っておく。
当サイト「ぺたっとPHPサンプルソースコード」は、初めてPHPを触る初心者でもすぐにPHPプログラミングができる・分かるサイトです。
PHPのサンプル
0から始めるPHP
日記