Определение бота
Кроме людей, страницы сайта могут посещать боты. Бывают задачи когда нужно выполнять какие то определённые действия в зависимости от того бот или нет зашёл на страницу сайта.
Ниже представлена PHP-функция возвращающая true
если на страницу зашёл бот или false
если не бот.
Функция выглядит так:
function isBot() {
$user_agent = $_SERVER["HTTP_USER_AGENT"];
if (empty($user_agent)) {
return false;
}
if(stristr($user_agent, 'yandex') !== false || stristr($user_agent, 'google') !== false || stristr($user_agent, 'bot') !== false) {
return true;
}
$bots = [
'Accoona', 'ia_archiver', 'Lighthouse', 'Ask Jeeves', 'W3C_Validator', 'WebAlta',
'YahooFeedSeeker', 'Yahoo!', 'Ezooms', 'SiteStatus', 'Nigma.ru', 'Baiduspider',
'SISTRIX', 'findlinks', 'proximic', 'OpenindexSpider', 'statdom.ru', 'Spider',
'Snoopy', 'heritrix', 'Yeti', 'DomainVader', 'StackRambler'
];
foreach ($bots as $bot) {
if (stripos($user_agent, $bot) !== false) {
return true;
}
}
return false;
}
Пример использования функции:
if( !isBot() ) {
// код выполняемый если не бот
}
*** Войдите чтобы писать комментарии.