目標は商店街をつくる事なんです。

あきらめてるわけじゃないんです。今やっていることが、必ず力になると思うんです。

アクセスカウンターの作り方 php

こんにちは。いたかなやです。


今日も来て頂いてありがとうございます。


最近ブログを更新すると、
★おすすめブログ
に載せてもらえるようになりました。



それに伴ってか、アクセス数も最近増えて来ています。
本当にありがたい限りです。


今後ともよろしくお願いいたします。





今日は、アクセスカウンターについてです。


はてなブログには、アクセス解析がついているので、
とくに自分で作る必要が、ないのですが、


この前、アップさせて頂いた。
Landmine Reversi など、


レンタルサーバーに置かせて頂いているものについて、
どれくらいアクセスがあるのか知りたくて、
ちょっと作ってみました。



アクセス解析みたいに、凄いものではありません。
アクセスカウンターです。
ほんまにカウントするだけです・・・
しょぼいです。



良かったら見ていってください。




まずは、訪問数を格納しておく、テキストファイルを作りましょう。
counter.txt
とかで良いです。
内容は、0 としといてください。
(この、0が訪問数として、増えていきます。)




次にphpの関数を作ります。

<?php
function counter($counter_file){   //*1
  $counter_lenght = 9;   //*2
  $fp = fopen($counter_file, 'r+');   //*3
  if ($fp){
    if (flock($fp, LOCK_EX)){   //*4
      $counter = fgets($fp, $counter_lenght);   //*5
      $counter++;
      rewind($fp);   //*6
      fwrite($fp,  $counter);   //*7
      flock($fp, LOCK_UN);   //*8
    }
  }
  fclose($fp);   //*9
  $len=strlen($counter);   //*10-1
  for($i=0;$i<($counter_lenght-$len);$i++)$counter="0".$counter;   //*10-2
  return $counter;   //*11
}
?>


以下説明です。





//*1
引数に、テキストファイルの名前(counter.txt)を持つ、counter関数です。


//*2
ウンターに表示させる桁数です。
例:9桁の場合→000000916


//*3
ポインタ=fopen(ファイル名,モード)
ファイルを開く
r+ : 読み取り書き込み


//*4
flock(ポインタ,ロックの種類)
ファイルをロックする。
LOCK_EX : 排他的ロックをする。ロックされていた場合は解除されるまで待つ。


//*5
fgets(ポインタ,読み込みバイト数)
ファイル内の文字列を読み込み


//*6
rewind(ポインタ)
ファイルポインタを最初に戻す。


//*7
fwrite(ポインタ,書き込み文字列)
ファイルに書き込み


//*8
flock(ポインタ,ロックの種類)
ファイルをロックする
LOCK_EX : ロックを解除する。


//*9
fclose(ポインタ)
ファイルを閉じる


//*10
指定された桁数を表示するために、数字の前に0を付けて$counterに格納。
アクセス:916件
$counter文字列:000000916


//*11
0詰めされた$counter文字列も返す。
カウント数の表示は、関数内では行わない。




以上です。


ウンターができたら、
今度は、解析ツールも作りたくなりますね。



頑張りまーす!!