S-COUNTER ~高速アクセスカウンター~

特徴、機能

scounter

  • シンプルで高速なアクセス・カウンター
  • 累計、昨日、今日、一定時間内(閲覧中)、を計測
  • テキスト、画像(非連結)、一枚画像の3つの表示モード搭載
  • カウンター掲載側から桁数と表示モードの変更が可能
  • 一定時間内の連続アクセスカウント防止機能
  • 巡回クローラのカウント防止機能
  • 累計のキリ番メッセージ表示機能
  • 耐久性のあるファイルロック機能
  • アクセス統計機能搭載
  • 便利な携帯判別関数を搭載

サンプル

統計サンプルを見る

ダウンロード

必ず利用規約を読んで、同意の上でダウンロードして下さい。scounter.lzh

内容、構成

public_html / index.html (トップページ)
     │
     └─────── scounter / scounter.php
                  │      scounter.html
                  │      report.php
                  │      report.html
                  │      common.css
                  │      sprite.css
                  │
                  ├───── data  データディレクトリ
                  │
                  └───── gif   画像ディレクトリ (任意)

使用方法

  1. ダウンロードしたファイルを解凍する
  2. scounter.phpをメモ帳などで設定をする
  3. ページにカウンターを埋め込む
  4. ファイルをサーバへ転送する
  5. 必要に応じてパーミッションを変更する

カウンターの埋め込み方

このカウンターは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 リリース