• ベストアンサー

アクセスカウンタの作成について教えてください

アクセスカウンタをphpで作ろうとしているのですが、 検索エンジン等のロボットにようるアクセスを除外したいのですが、 どうすれば良いのか、よく分かりません。 ご存知の方がいらっしゃましたら、ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gfct9s
  • ベストアンサー率90% (10/11)
回答No.1

検索エンジンロボットのアクセスを除外したいということですね。 ロボットの判定は色々ありますが、UserAgent文字列で判断するのが、 お手軽で一般的だと思います。 UserAgentは、$_SERVER['HTTP_USER_AGENT']に入ってきます。 ロボットがアクセスしてくると、この文字列が以下のように なったりします。 Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) msnbot/1.0 (+http://search.msn.com/msnbot.htm) Baiduspider+(+http://www.baidu.com/search/spider.htm) パターンとしては、「bot/」「bot-」「spider」「crawl」「slurp」 なんていう文字が入っていると、ロボットと判断していいと思います。 以上をふまえてプログラムを書くと、以下のような感じになるでしょうか。 if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/(bot[\\/\\-]|spider|crawl|slurp)/i', $_SERVER['HTTP_USER_AGENT'])) { // (ロボットのときの処理) } else { // (通常のブラウザーのときの処理) } preg_match()関数については、参考URLをお読みになってください。

参考URL:
http://au3.php.net/manual/ja/function.preg-match.php
xyz_1990
質問者

お礼

ご回答ありがとうございます。 教えていただいた内容を元に作成できそうです。 ありがとうございました。