1,891 views
この記事は最終更新から 3171日 が経過しています。
「アクセス数が増えた!」
なんて喜んでいたら、実はロボットばかりだった…
アクセスカウンタの目的は
「どれだけの人に見ていただいているか?」
を知ることであり、情報収集目的のロボットのアクセスはカウントしたくない。
親切なことに、いくつかは上図のように 「私はロボットです」 というサインを残してくれるので、アクセスカウンタではこれを頼りにロボットのアクセスを除外してみる。
プログラム作成
(16) SQLiteでアクセスカウンタ作成 #4 (日別訪問数を記録) からの変更点は以下の2関数のみ。
CCounter.php
public static function is_bot(){
$ret = TRUE;
$ua = (isset($_SERVER['HTTP_USER_AGENT']))? $_SERVER['HTTP_USER_AGENT'] : "";
if($ua == ""){ // HTTP_USER_AGENTが無い?
goto tagEND;
}
// BOT判定
if(preg_match('/bot\//i', $ua) === 1){
goto tagEND;
}
$ret = FALSE; // BOTではない。
//--------------------------------------------------------------------------
tagEND:
return $ret;
}
public function count_up(){
$cnt = 0;
if($this->m_db == NULL){ // 未接続?
goto tagEND; // 処理不要
}
// ロボットならば無視
if(self::is_bot()){
goto tagEND; // 処理不要
}
:
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2026-05-08: 0回 2026-05-07: 0回 2026-05-06: 0回 2026-05-05: 0回 2026-05-04: 0回 2026-05-03: 0回 2026-05-02: 0回