Отсутствуя год заметил, что счетчик посещений некоторых страничек просто зашкаливает. Связано это, как выяснилось, с тем, что помимо реальных пользователей страничка генерируется и для поисковых ботов. Поэтому была нужна функция, которая бы определяла идет текущий запрос к странице от бота или от пользователя. Используя HTTP_USER_AGENT, можно узнать, если страница посещается ботом:
function isBot(&$botname = ''){ /* Эта функция будет проверять, является ли посетитель роботом поисковой системы */ $bots = array( 'rambler','googlebot','aport','yahoo','msnbot','turtle','mail.ru','omsktele', 'yetibot','picsearch','sape.bot','sape_context','gigabot','snapbot','alexa.com', 'megadownload.net','askpeter.info','igde.ru','ask.com','qwartabot','yanga.co.uk', 'scoutjet','similarpages','oozbot','shrinktheweb.com','aboutusbot','followsite.com', 'dataparksearch','google-sitemaps','appEngine-google','feedfetcher-google', 'liveinternet.ru','xml-sitemaps.com','agama','metadatalabs.com','h1.hrn.ru', 'googlealert.com','seo-rus.com','yaDirectBot','yandeG','yandex', 'yandexSomething','Copyscape.com','AdsBot-Google','domaintools.com', 'Nigma.ru','bing.com','dotnetdotcom' ); foreach($bots as $bot) if(stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false){ $botname = $bot; return true; } return false; }
Использовать очень просто:
if( !isBot() )$hits=$hits+1;// накручиваем счетчик если запрос не от бота // или так $bname = ''; if( isBot($bname) ) echo 'На сайте сейчас '.$bname;
Комментарии
seo-kiev.com.ua/zahodi-botov-poiskovikov-yandex-google.html
$bname = '';
if( isBot($bname) ) echo 'На сайте сейчас '.$bname;
А в функции переменная называется $botname