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

yipeiwu_com7年前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 echo "\r\n第一种情况\r\n"; $a=array(1,2...

PHP日期处理函数 整型日期格式

当我过去用ASP时解决这个问题相当简单,ASP有相应的函数DateDiff可以给出两个日期间间隔多少月、多少天和多少秒。当我搜寻完PHP手册后我发现PHP并没有类似的函数。 本文包含以下...

JS与PHP向函数传递可变参数的区别实例代码

# JS 调用函数传递可变参数的方法 复制代码 代码如下: <script> function test() {    for(var i = 0;i < argume...

PHP常见错误提示含义解释(实用!值得收藏)

本文讲述了PHP常见错误提示含义解释。分享给大家供大家参考,具体如下: 在学习PHP的时候,经常遇到各种错误提示,今天看到这错误提示和解释感觉挺好,现转过来,供我们学习。呵呵。。。。。...

在PHP中输出JS语句以及乱码问题的解决方案

怎样在php中输出js语句? 示例 <?php $classState=""; if($state==0){ $classState="已下课"; } else{ $c...