Определение бота

Кроме людей, страницы сайта могут посещать боты. Бывают задачи когда нужно выполнять какие то определённые действия в зависимости от того бот или нет зашёл на страницу сайта.

Ниже представлена 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() ) {
    // код выполняемый если не бот
}
Комментарии 0

*** чтобы писать комментарии.