トータル・昨日・今日、のカウントを表示できるPHPのカウンターです。カウンターは、基本的なテキスト表示およびGIF画像表示と、gifcat連結画像出力、GD生成画像出力が可能で、設置するページやサーバの環境にあわせて選べます。IPアドレスと時間によるリロード制限やキリ番機能他もついています。詳しくはすぐ下の「機能」を見てください。
色々と詰め込んだため、設定と設置方法が少し分かり辛いかも知れません。質問や要望などがありましたらがらくたBBS-PHPでどうぞ。
スクリプトのダウンロード→ vcounter101.lzh
ダウンロードしたファイルを解凍して、下の5つのファイルを同じフォルダにアップロードします。vcounter.phpはアップロードする前に下の設定変更(全般)を参考に設定を変更します。アップロードしたフォルダのパーミッションを 705 以上にして、各ファイルのパーミッションを下のように設定します。カウンタータイプ1と2で使うGIF画像を置くフォルダを作成し、その中に 0.gif 〜 9.gif までのGIF画像ファイルとキリ番時に表示する画像ファイルをアップロードします。よくわからなければ、解凍してできたフォルダを丸ごとアップロードしてパーミッションだけ設定してください。
vcounter.php 604 以上。スクリプト本体。
vct.log 606 以上。ログファイル。0バイトの空ファイルです。
vct.bak 606 以上。バックアップファイル。0バイトの空ファイルです。
vct.lock 606 以上。排他制御用ファイル。0バイトの空ファイルです。
gifcat.php 604 以上。カウンタータイプ2で使うGIF画像連結ライブラリ。
ファイルやフォルダの設定を変えずに使用する場合は、以下の様になります。
vcounter/ ←V Counter用フォルダ(フォルダ名はお好きにどうぞ)。705 以上。 | vcounter.php ←スクリプト本体。604 以上。 | vct.log ←ログファイル(0バイトの空ファイル)。606 以上。 | vct.bak ←バックアップファイル(0バイトの空ファイル)。606 以上。 | vct.lock ←排他制御用ファイル(0バイトの空ファイル)。606 以上。 | gifcat.php ←カウンタータイプ2で使うGIF画像連結ライブラリ。604 以上。 └ image/ ←カウンタータイプ1と2で使うGIF画像を置くフォルダ(自分で作成)。705 以上。 | 0.gif〜9.gif ←カウンタータイプ1と2で使うGIF画像。604 以上。 └ kiriban.gif ←カウンタータイプ1と2のキリ番時に表示する画像。604 以上。
ここまで完了したら、カウンターを表示させたいページにカウンタータイプに応じたタグやスクリプトを記述してカウンターが表示されるようにします。詳しくはすぐ下の「カウンター表示方法」を見てください。
vcounter.php内のカウンタータイプの設定($cttype)を”0”または”1”にします。
カウンターを表示させたい場所に以下のように記述します。表示させるページの拡張子をPHPのスクリプトを実行できるもの(一般的には)php にします。
<?php include("./vcounter/vcounter.php"); echo "Total: {$count[0]} yesterday: {$count[1]} today: {$count[2]} $kiri_mes" ?>
PHPのスクリプト中の、”{$count[0]}”は総計カウントに、”{$count[1]}”は昨日のカウントに、”{$count[2]}”は今日のカウントに、”{$kiri_mes}”はキリ番時のメッセージあるいは画像にそれぞれ置換されて表示されます。
カウンタータイプはvcount.phpを呼び出す際にオプションで指定します。vcounter.php内のカウンタータイプの設定($cttype)は無視されます。
カウンターを表示させたい場所に以下のように記述します。表示させるページの拡張子は php 以外(htmlなど)でも大丈夫です。
<img src="./vcounter/vcounter.php?type=2&disp=0">
vcounter.phpを呼び出す際のオプションでカウンタータイプを指定します。カウンタータイプ2で表示するので”type=2”と記述します。更に表示するカウントを指定します。総計カウントを表示する場合は”disp=0”、昨日のカウントなら”disp=1”、今日のカウントなら”disp=2”と記述します。
カウンタータイプはvcount.phpを呼び出す際にオプションで指定します。vcounter.php内のカウンタータイプの設定($cttype)は無視されます。
カウンターを表示させたい場所に以下のように記述します。表示させるページの拡張子は php 以外(htmlなど)でも大丈夫です。
<img src="./vcounter/vcounter.php?type=3">
vcounter.phpを呼び出す際のオプションでカウンタータイプを指定します。カウンタータイプ3で表示するので”type=3”と記述します。画像内の文字はvcounter.php内の $text と $text_k で設定します。
通常時の文字の例:$text = "Total:{$count[0]} yesterday:{$count[1]} today:{$count[2]}"
キリ番時の文字の例:$text_k = "Congratulations!! {$count[0]}th Hit"
PHPのスクリプト中の、”{$count[0]}”は総計カウントに、”{$count[1]}”は昨日のカウントに、”{$count[2]}”は今日のカウントにそれぞれ置換されます。
vcounter.php をテキストエディタ(メモ帳等)で開いて、各設定を使用するカウンタータイプや好みに応じて変更します。
キリ番機能の詳しい内容については下の「キリ番機能について」をご覧ください。
$kiri_bai = array(1000,5000,10000)
のように、倍数キリ番の基数となる数値をカンマで区切って記述します。倍数キリ番を設定しない場合は、$kiri_bai = 0
と記述します。$kiri_bai = array(1000,5000,100000)
と設定した場合、ここの設定を$kiri_bai_fig = array(4,5,10)
とすると、1000を基数とするキリ番は、9000(4桁)まで、5000を基数とするキリ番は、95000(5桁)まで、10000を基数とするキリ番は、9999990000(10桁)まで、となります。カウンタータイプ3(GDでカウンター画像を生成するタイプ)で表示する画像の設定です。カウンタータイプ3を使用しなければ特に設定する必要はありません。設定はスクリプトの200行目あたりからです。
$textrgb = array(0, 0, 255)
のように、カンマで区切って左から、赤、緑、青、の値を設定します。画像のサイズは出力文字に合わせて自動調節されます。
出力する文字にTrueTypeフォントを使用する場合の設定です。フォントはTrueType(.ttf, .ttc)の他、OpenType(.otf)を使用できます。詳しくは下の「カウンタータイプ3の指定フォントについて」をご覧ください。
「指定数値の倍数」、「1234、76543、などの連番」、「1111、7777などのゾロ目」をキリ番として、キリ番表示時にはキリ番用のメッセージや画像を表示させることができます。設定については設定変更(全般)の「動作設定(キリ番)」の項を見てください。キリ番の対象は総計カウントのみです。キリ番機能を使用しない場合は、下の各キリ番チェックをすべて”しない”に設定してください。
1000hit毎や10000hit毎にキリ番としたい時に設定します。基数毎の有効桁数も指定できます。倍数キリ番の基数を $kiri_bai = array(1000,5000,10000)
とし、有効桁数を$kiri_bai_fig = array(4,5,10)
と設定すると、倍数キリ番は「1000, 2000, 3000... 9000, 10000, 15000, 20000, 25000... 100000, 110000, 120000...」となります。倍数キリ番を設定しない場合は、$kiri_bai = 0
と記述します。
1234、87654、のように、大から小あるいは小から大に数字が連番で並んでいるものをキリ番としたい時に設定します。大から小の連番は「987654, 87654, 43210, 4321」など、小から大の連番は「123456, 23456, 56789」などです。連番キリ番の有効桁数も指定できます。例えば有効桁数を4とした場合は、123、321、などはキリ番としません。
1111、77777、のように、全ての桁の数字が同じゾロ目をキリ番としたい時に設定します。ゾロ目キリ番の有効桁数も指定できます。例えば有効桁数を3とした場合は、11、99、などはキリ番としません。
カウンタータイプ1と2では、キリ番用の画像を用意してそれをキリ番時に表示させることができます。カウンタータイプ1の場合は、画像の種類はGIF以外でも構いません。カウンタータイプ2の場合はGIF画像のみです。アーカイブにはキリ番用の画像が3つ入っていますので、それを使って頂いて結構です。
カウンタータイプ0は、キリ番時にはテキストのメッセージを表示しますが、
$kiri_mes = "<img src=\"./vcounter/image/kiriban.gif\" alt=\"キリ番ゲット\">"
のように記述すれば、画像を表示できます。
カウンタータイプ3は、GD生成画像なので画像を用意する必要はありません。キリ番用のメッセージだけ設定して下さい。
フォントを指定しない場合は出力する文字列に日本語(全角文字)は使用できません。日本語を使用したい時は表示したい日本語を含むフォントを指定する必要があります。$ttftextを1にすると、imagettftext関数を使用して文字列を指定されたフォントで出力します。
TrueTypeフォントとOpenTypeフォントが使用できます。TrueTypeフォントはWindowsやMac OSの標準フォントとして用いられているフォントファイル形式で、拡張子は ttf あるいは ttc です。OpenTypeフォントはAdobe Systems社とMicrosoft社が共同開発したフォントファイル形式の1つで、拡張子は otf です。Mac OS X やWindows 2000、Windows XPなどが標準で対応しています。
この2つの形式のフォントでも、GDのバージョン(正確にはGDがサポートしているFreeType)やフォントの更にこまかい形式によって、正常に表示できたりできなかったりします。ローカルサーバで動作テストする際は注意してください。ちなみに、Windows 2000/XP + GD v2.0以降ならOpenTypeフォントを使用すればたぶん大丈夫です。
サーバ管理者の指定した場所あるいは任意の場所にアップロードして、絶対パスで指定します。絶対パスが分からなければサーバ管理者に訊くなどしてください。フォントは自分のパソコンにインストールされているものを使用するのが、もっとも簡単で手っ取り早い方法です。Windowsなら C:/WINDOWS/Fonts/ あるいは C:/WINNT/Fonts/ にフォントファイルがインストールされているので、その中から好みのフォントファイルをコピーして使ってみましょう。フォントを見たりコピーしたりには、フリーソフトのフォントインストーラー SAKURAがおすすめです。
自作のフォントをフリーフォントとして公開している方もいらっしゃいます。そういうフォントを使用させてもらうのもいいでしょう。V Counterのサンプルに使用させて頂いているフォントを紹介しておきます。おすすめのフォントです。
カウント数を変更したい時は、vcct.log をテキストエディタで開いて変更したいカウントを書き換えます。vcct.log の初期値は”0|0|0|0|0”となっています。”|”で区切って、左から、時間、総計カウント、昨日のカウント、今日のカウント、IPアドレス、です。最初から変更したい時は、変更したい個所を書き換えて上書き保存してからアップロードしてください。
同じページで何度もvcounter.phpを呼び出すと正常にカウントアップしないことがあります。その時は基本動作設定の $sleeptime を 1 〜 3 秒に設定してみてください。
アーカイブに同梱されているカウンター用GIF画像とキリ番用GIF画像は私(Teal)が作成した物です。お気に召しましたらご自由にお使いください。
PHP SAMPLES & TIPSさんのGIF画像連結ライブラリを使用およびアーカイブに同梱させて頂きました。
カウンターサンプルのフォントにロシア風素材とフォントCossackさんの『えれーな「漢字フォント」』と、chipheadさんの『しねきゃぷしょん』を使用させて頂きました。
2005/01/04 ver.1.01 連続カウントアップ制限時に日付をまたがっているとカウントアップしない不具合を修正。
2004/03/27 ver.1.00 とりあえず完成。