統計サンプルを見る scounter.zip をダウンロードする
- シンプルで高速なアクセス・カウンター
- 累計、昨日、今日、一定時間内(閲覧中)、を計測
- テキスト、画像(非連結)、一枚画像の3つの表示モード搭載
- カウンター掲載側から桁数と表示モードの変更が可能
- 一定時間内の連続アクセスカウント防止機能
- 巡回クローラのカウント防止機能
- 累計のキリ番メッセージ表示機能
- 耐久性のあるファイルロック機能
- アクセス統計機能搭載
- 便利な携帯判別関数を搭載
内容、構成
public_html / index.html (トップページ) │ └─────── scounter / scounter.php │ scounter.html │ report.php │ report.html │ common.css │ sprite.css │ ├───── data データディレクトリ │ └───── gif 画像ディレクトリ (任意)
使用方法
- ダウンロードしたファイルを解凍する
- scounter.phpをメモ帳などで設定をする
- ページにカウンターを埋め込む
- ファイルをサーバへ転送する
- 必要に応じてパーミッションを変更する
カウンターの埋め込み方
このカウンターはPHP製ですので、埋め込むページがPHPファイルでなければいけません。HTMLファイルでも、拡張子を.phpに変えると使えるかもしれません。
まず、カウンタースクリプトを読み込んで下さい。アクセスすると$sc変数が生成されてカウントされます。内蔵の携帯判別関数を使えば、携帯の処理を分岐させる事もできます。PCと携帯で異なる表示モードを利用できます。
require_once 'scounter/scounter.php'; if ($sc->isMobile()) { // 携帯用の画面を出力 } else { // パソコン用の画面を出力 }
最後に、データを引っ張ってきます。
各カウントは桁数指定でき、それに満たない場合は左側に0が補われます。
(桁数を指定しなかった場合や、指定桁数を超えた場合は整形されません。)
3桁毎のカンマ区切りにしたい場合は桁数の次に1を与えて下さい。
[例:7桁カンマ区切り] total(7, 1) => 1.234.567
累計のカウントは<?php echo $sc->total(桁数); ?> 昨日のカウントは<?php echo $sc->yesterday(桁数); ?> 今日のカウントは<?php echo $sc->today(桁数); ?> 閲覧中のカウントは<?php echo $sc->online(桁数); ?> キリ番の時だけ表示されるメッセージ<?php echo $sc->just(); ?>
画像モード
画像モードの場合は、0.gif~9.gifとカンマのc.gifを用意して下さい。
画像のディレクトリも設定します。(デフォルトは./scounter/gif/)
表示前にディレクトリを変更すれば、合計と今日のカウントを別々の画像にする事もできます。
// 画像モードにする $sc->setMode('image'); // 画像ディレクトリを設定 $sc->setImgDir('/images');
スプライトモード(一枚画像モード)
このモードは、画像ファイルを一枚だけ使うので、桁数分の画像リクエストが発生せず、表示速度も上がります。ただし事前に手間がかかるので、サーバの負荷を極力減らしたいヘビーユーザー向けの機能です。
// スプライトモードにする $sc->setMode('sprite');
一枚の画像を使って、各桁をspan要素の背景で表現します。例えば32は以下の様に出力されます。
<span class="d3"> </span><span class="d2"> </span>
まず、10桁がまとまった1枚画像(0~9の横並びが良いでしょう)を用意し、各桁の位置と幅をCSSで指定します。カンマ区切りにする場合はカンマ画像も追加します。以下の参考CSSを同梱しておりますので、読み込むページに合わせて文字コードを変換してお使い下さい。
/* 一枚画像モード用CSS */ #counter { } /* 背景や幅を設定する為にブロック化して桁を並べる */ #counter span { display: block; float: left; } /* 累計、昨日、今日、閲覧中の桁要素を包む要素 */ #counter span.wrapper { margin-right: 8px; } /* 桁要素に画像背景を設定 */ #counter span span { background: url(/scounter/gif/sprite.gif); background-repeat: no-repeat; } /* 画像背景の位置と幅を調節 .dcはカンマ */ #counter .d0{background-position: 0px 0px; width: 7px;} #counter .d1{background-position: -10px 0px; width: 4px;} #counter .d2{background-position: -20px 0px; width: 7px;} #counter .d3{background-position: -30px 0px; width: 7px;} #counter .d4{background-position: -40px 0px; width: 7px;} #counter .d5{background-position: -50px 0px; width: 7px;} #counter .d6{background-position: -60px 0px; width: 7px;} #counter .d7{background-position: -70px 0px; width: 6px;} #counter .d8{background-position: -80px 0px; width: 7px;} #counter .d9{background-position: -90px 0px; width: 7px;} #counter .dc{background-position: -100px 0px; width: 4px;}
例えば以下の様に埋め込んだ場合は、その下の様に出力されます。
<p id="counter"> <?php echo $sc->total(2); ?> <?php echo $sc->today(2); ?> </p>
<p id="counter"> <span class="wrapper" title="total"> <span class="d8"> </span><span class="d5"> </span> </span> <span class="wrapper" title="today"> <span class="d2"> </span><span class="d3"> </span> </span> </p>
更新履歴
2009/10/22 | データ破損時に処理が中断してしまう問題を解消、携帯判別にiPhoneとAndroid追加 |
2009/08/11 | 処理速度向上、カウンター値確認画面追加 |
2009/05/28 | 携帯判別関数追加 |
2009/05/27 | 設定値や関数をclassで隠蔽 |
2009/05/23 | スプライトモードのカンマ区切りに対応 |
2008/10/02 | 統計画面に月別アクセス数を表示 |
2008/08/23 | 表示モード設定削除 |
2008/03/10 | 大晦日のデータを翌年のレポートファイルに記録してしまうバグ修正 |
2008/02/16 | 簡単な統計レポート表示追加 |
2007/10/17 | スプライトモード追加 |
2007/09/23 | ファイルロックを更に強化 |
2007/09/19 | ファイルロックを修正 |
2007/05/20 | ロボットのカウント除外設定追加 |
2006/11/26 | キリ番機能、一定時間内計測、などの変更と追加 |
2005/08/01 | リリース |