php判断爬虫

时间:2022-03-11 21:03:43

function checkrobot($useragent = ''){

static $kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';

static $kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';

$useragent = empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent;

if(!strexists($useragent, 'http://') && preg_match("/($kw_browsers)/i", $useragent)) {

return false;

} elseif(preg_match("/($kw_spiders)/i", $useragent)) {

return true;

} else {

return false;

}

}

function strexists($haystack, $needle) {
return !(strpos($haystack, $needle) === FALSE);
}
if(checkrobot()){
echo '机器人爬虫';
}else{
echo '人';
}
?>

<?php
function checkrobot($useragent=''){
static $kw_spiders = array('bot', 'crawl', 'spider' ,'slurp', 'sohu-search', 'lycos', 'robozilla');
static $kw_browsers = array('msie', 'netscape', 'opera', 'konqueror', 'mozilla');

$useragent = strtolower(empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent);
if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false;
if(dstrpos($useragent, $kw_spiders)) return true;
return false;
}

function dstrpos($string, $arr, $returnvalue = false) {
if(empty($string)) return false;
foreach((array)$arr as $v) {
if(strpos($string, $v) !== false) {
$return = $returnvalue ? $v : true;
return $return;
}
}
return false;
}

if(checkrobot()){
echo '机器人爬虫';
}else{
echo '人';
}
?>