Skip to content

Instantly share code, notes, and snippets.

@andrewbrg
Forked from geerlingguy/crawler_detect.php
Last active August 22, 2018 21:05
Show Gist options
  • Save andrewbrg/95145419a4ba6e53cbe417dcb8b43aa4 to your computer and use it in GitHub Desktop.
Save andrewbrg/95145419a4ba6e53cbe417dcb8b43aa4 to your computer and use it in GitHub Desktop.
Detect crawlers/bots/spiders in PHP (simple and fast)
<?php
/**
* Check if a request originated from a crawler, spider, or bot.
*
* @param null|string $userAgent
* @param array $identifiers
* @return bool
*/
if (!function_exists('isBot')) {
function isBot($userAgent = null, $identifiers = array())
{
$userAgent = isset($userAgent)
? $userAgent
: $_SERVER['HTTP_USER_AGENT'];
$identifiers = !is_array($identifiers)
? array($identifiers)
: $identifiers;
$userAgent = trim(strtolower($userAgent));
$_identifiers = array(
'bot',
'slurp',
'crawler',
'spider',
'curl',
'facebook',
'fetch'
);
$_identifiers = array_merge($_identifiers, $identifiers);
foreach ($_identifiers as $_identifier) {
if (strpos($userAgent, $_identifier) !== false) {
return true;
}
}
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment