用php实现让页面只能被百度gogole蜘蛛访问的方法

yipeiwu_com6年前PHP代码库
普通用户与搜索引擎蜘蛛爬行的区别在于发送的user agent,
看网站日志文件能发现百度蜘蛛名字包含Baiduspider, 而google的则是Googlebot, 这样我们可以通过判断发送的user agent来决定要不要取消普通用户的访问,编写函数如下:
复制代码 代码如下:

function isAllowAccess($directForbidden = FALSE) {
$allowed = array('/baiduspider/i', '/googlebot/i');
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$valid = FALSE;
foreach ($allowed as $pattern) {
if (preg_match($pattern, $user_agent)) {
$valid = TRUE;
break;
}
}
if (!$valid && $directForbidden) {
exit("404 not found");
}
 
return $valid;
}

在要禁止访问的页面头部引用这个函数来做判断就ok了,如下俩中调用方式:
复制代码 代码如下:

if (!isAllowAccess()) {
exit("404 not found");
}
//或者
isAllowAccess(TRUE);

相关文章

深入理解PHP原理之异常机制

深入理解PHP原理之异常机制

PHP的异常机制的原理是什么? 在PHP每一个可独立执行的op array最后的ZEND_HANDLE_EXCEPTION是用来干什么呢? 让我们从一个问题说起, 上周的时候, blue...

php中配置文件操作 如config.php文件的读取修改等操作

复制代码 代码如下: <?php $name="admin";//kkkk $bb='234'; $db=4561321; $kkk="admin"; ?> 函数定义: 配...

PHP中strtr字符串替换用法详解

本文实例讲述了PHP中strtr字符串替换用法。分享给大家供大家参考。具体分析如下: strtr(string,from,to)或者strtr(string,array) 首先针对str...

PHP获取汉字笔画数功能【测试可用】

本文实例讲述了PHP获取汉字笔画数功能。分享给大家供大家参考,具体如下: 无意中看到这么个东西,用PHP得到汉字的笔画数。以类的方式实现,有那么点意思,先留下了。 <?...

CMSPRESS 10行代码搞定 PHP无限级分类2

超级无限分类 使用简单 效率极高 核心代码10行不到 另外 求这个分类的不足,和更高效简单的无限分类方法 ^_^ 核心代码如下 class Tool { static pu...