Отсутствуя год заметил, что счетчик посещений некоторых страничек просто зашкаливает. Связано это, как выяснилось, с тем, что помимо реальных пользователей страничка генерируется и для поисковых ботов. Поэтому была нужна функция, которая бы определяла идет текущий запрос к странице от бота или от пользователя. Используя 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;

 

Рассказать друзьям

Добавить комментарий


Защитный код
Обновить

Комментарии   

-23
Андрей
# Андрей 01.02.2013 20:17
Хачем придумывать колесо? уже есть веб-сервисы на просторах рунета, которые бесплатно предлагают разместить кнопу на свой сайт, а они тем самым отслежывают и выводит на кнопке, когда и какой бот посещал эту страницу
seo-kiev.com.ua/zahodi-botov-poiskovikov-yandex-google.html
+18
Leroy
# Leroy 01.02.2013 20:40
Чем данные сервисы могут помочь мне распозать когда надо повышать счетчик посещений, а когда это делает бот? разве что пропиарить свой блог хотели?
+1
KINGS
# KINGS 28.08.2016 22:06
Шикарно!