先月と今月のアクセス数をサイトに表示する、アクセスカンターをphpで自作する

10年以上前に流行っていたらしいアクセスカウンター。
今はGoogleAnaliticsなどでかなり詳細にアクセス数を取得できるので、めっきりみなくなっていましたが、最近自作する機会があったので、メモします。

仕組みの考え方

・今回は、ページを表示されるたびにカウント(PV)
・アクセスされる度に、アクセス数が書いてあるファイルを開き、その数字に+1して上書きしていく。
・そのファイルに書いてある数字を取得して、サイト上に表示する。
・毎月1日になったら、cronで上記ファイルを先月用のファイルに名前変更する。
・先月のアクセス数は、先月用ファイルから取得する。
・cronで今月用のファイルを作成し、0を書き込むことで、また1からカウントする。

カウントを保存するファイルを今月用、先月用と作成

①今月のアクセス数を保存するcounter.datを作成し、「0」を記述。任意のディレクトリに配置。
②先月用のアクセス数を記述したファイル、例えば「counter202012.dat」を用意し同じディレクトリに配置

 

phpの記述

カウントを行いたいページに、以下を記述する。

 

HTMLで出力

アクセスカウンターを表示したい場所に、出力。

ここまででアクセスカウンターは動くようになります。
ただ、月が替わるごとに、アクセス数が記述されたファイル(counter.dat)が自動で更新されてほしいので、ここからはcronを使います。
例えば今月が1月だとする場合、2月に変わった時に、counter.datに保存されていた値をcounter202101.datとして先月用のファイルにリネームし、今月用のcounter.datの値を0にしたいです。

そこで、上記の処理を行うためにcronに登録するための処理をphpで記述します。

cron設定用の処理をexec_counter.phpに記述

exec_counter.phpと記載しましたが、ファイル名はなんでも大丈夫です!

 

exec_counter.phpを毎月1日になったら動かすようにcronに設定

こちらの記事にさくらサーバでのやり方を記載しています。

毎月1日に、先月分のcounter.datが日付付きにリネームされ、新しいcounter.datが生成されていることも確認できました!