php 判断访客是否为搜索引擎蜘蛛的函数代码
2015-01-24信息快讯网
php 判断访客是否为搜索引擎蜘蛛的函数代码。需要的朋友可以参考下。
/**
* 判断是否为搜索引擎蜘蛛
*
* @author Eddy
* @return bool
*/
function isCrawler() {
$agent= strtolower($_SERVER['HTTP_USER_AGENT']);
if (!empty($agent)) {
$spiderSite= array(
"TencentTraveler",
"Baiduspider+",
"BaiduGame",
"Googlebot",
"msnbot",
"Sosospider+",
"Sogou web spider",
"ia_archiver",
"Yahoo! Slurp",
"YoudaoBot",
"Yahoo Slurp",
"MSNBot",
"Java (Often spam bot)",
"BaiDuSpider",
"Voila",
"Yandex bot",
"BSpider",
"twiceler",
"Sogou Spider",
"Speedy Spider",
"Google AdSense",
"Heritrix",
"Python-urllib",
"Alexa (IA Archiver)",
"Ask",
"Exabot",
"Custo",
"OutfoxBot/YodaoBot",
"yacy",
"SurveyBot",
"legs",
"lwp-trivial",
"Nutch",
"StackRambler",
"The web archive (IA Archiver)",
"Perl tool",
"MJ12bot",
"Netcraft",
"MSIECrawler",
"WGet tools",
"larbin",
"Fish search",
);
foreach($spiderSite as $val) {
$str = strtolower($val);
if (strpos($agent, $str) !== false) {
return true;
}
}
} else {
return false;
}
}
网上倒是能搜到一大把,不过都是千篇一律的复制来复制去的,也不够全面,我这里整理了一份比较全面的代码:
function is_spider(){
$robot = 0;
$USER_AGENT = strtolower($_SERVER['HTTP_USER_AGENT']);
if(strpos($USER_AGENT,"bot")) $robot = 1;
if(strpos($USER_AGENT,"spider")) $robot = 1;
if(strpos($USER_AGENT,"slurp")) $robot = 1;
if(strpos($USER_AGENT,"mediapartners-google")) $robot = 1;
if(strpos($USER_AGENT,"fast-webcrawler")) $robot = 1;
if(strpos($USER_AGENT,"altavista")) $robot = 1;
if(strpos($USER_AGENT,"ia_archiver")) $robot = 1;
if($robot == 1){
//do something
}
return '';
}
用Php编写注册后Email激活验证的实例代码
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
使用php判断浏览器的类型和语言的函数代码
PHP删除非空目录的函数代码小结
PHP生成随机用户名和密码的实现代码
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
php判断上传的Excel文件中是否有图片及PHPExcel库认识
PHP判断文件是否存在、是否可读、目录是否存在的代码
php中判断文件存在是用file_exists还是is_file的整理
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
php.ini中date.timezone设置分析
PHP调用Webservice实例代码
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
一个典型的PHP分页实例代码分享
php XPath对XML文件查找及修改实现代码
简单的php写入数据库类代码分享
在php中判断一个请求是ajax请求还是普通请求的方法
php判断输入不超过mysql的varchar字段的长度范围
PHP文件打开、关闭、写入的判断与执行代码
WordPress判断用户是否登录的代码
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别