使用PHP实现蜘蛛访问日志统计_php技巧

复制代码 代码如下:

$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));

 if (strpos($useragent, 'googlebot')!== false){$bot = 'Google';}
 elseif (strpos($useragent,'mediapartners-google') !== false){$bot = 'Google Adsense';}
 elseif (strpos($useragent,'baiduspider') !== false){$bot = 'Baidu';}
 elseif (strpos($useragent,'sogou spider') !== false){$bot = 'Sogou';}
 elseif (strpos($useragent,'sogou web') !== false){$bot = 'Sogou web';}
 elseif (strpos($useragent,'sosospider') !== false){$bot = 'SOSO';}
 elseif (strpos($useragent,'360spider') !== false){$bot = '360Spider';}
 elseif (strpos($useragent,'yahoo') !== false){$bot = 'Yahoo';}
 elseif (strpos($useragent,'msn') !== false){$bot = 'MSN';}
 elseif (strpos($useragent,'msnbot') !== false){$bot = 'msnbot';}
 elseif (strpos($useragent,'sohu') !== false){$bot = 'Sohu';}
 elseif (strpos($useragent,'yodaoBot') !== false){$bot = 'Yodao';}
 elseif (strpos($useragent,'twiceler') !== false){$bot = 'Twiceler';}
 elseif (strpos($useragent,'ia_archiver') !== false){$bot = 'Alexa_';}
 elseif (strpos($useragent,'iaarchiver') !== false){$bot = 'Alexa';}
 elseif (strpos($useragent,'slurp') !== false){$bot = '雅虎';}
 elseif (strpos($useragent,'bot') !== false){$bot = '其它蜘蛛';}
 if(isset($bot)){
     $fp = @fopen('bot.txt','a');
     fwrite($fp,date('Y-m-d H:i:s')."\t".$_SERVER["REMOTE_ADDR"]."\t".$bot."\t".'http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]."\r\n");
     fclose($fp);
 }

时间: 2024-08-03 06:16:41

使用PHP实现蜘蛛访问日志统计_php技巧的相关文章

使用PHP实现蜘蛛访问日志统计

本篇文章是对使用PHP实现蜘蛛访问日志统计的代码进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: $useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));  if (strpos($useragent, 'googlebot')!== false){$bot = 'Google';}  elseif (strpos($useragent,'mediapartners-google') !== false){

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

普通用户与搜索引擎蜘蛛爬行的区别在于发送的user agent,看网站日志文件能发现百度蜘蛛名字包含Baiduspider, 而google的则是Googlebot, 这样我们可以通过判断发送的user agent来决定要不要取消普通用户的访问,编写函数如下: 复制代码 代码如下: function isAllowAccess($directForbidden = FALSE) { $allowed = array('/baiduspider/i', '/googlebot/i'); $user

php 使用redis锁限制并发访问类示例_php技巧

本文介绍了php 使用redis锁限制并发访问类,并详细的介绍了并发访问限制方法. 1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功. 例如换领优惠券,如果用户同一时间并发提交换领码,在没有加锁限制的情况下,用户则可以使用同一个换领码同时兑换到多张优惠券. 伪代码如下: if A(可以换领)     B(执行换领)     C(更新为已换领) D(结束) 如果用户并发提交换领码,都能通过可以换领(A)的判断,因

php跨服务器访问方法小结_php技巧

本文实例总结了php跨服务器访问方法.分享给大家供大家参考.具体分析如下: 近来项目中遇到跨服务器访问的问题,研究了好些日子,总结如下: 1.用file_get_contents方法 $host = 'url'; $randomNumber=file_get_contents($host); echo $$randomNumber; 2.用Curl $host = 'url'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $host); //

C# Assembly类访问程序集信息_php技巧

C#中通过Assembly类可以访问程序集信息. 1.允许访问给定程序集的元元素,包含可以加载和执行程序集的方法: 2.加载程序集:使用静态方法Assembly.Load(程序集名称)或Assembly.LoadFrom(程序集完整路径名): 3.属性: FullName:程序集显示名称: 3.方法: GetTypes():获取程序集中定义的类型. TestAssembly.cs: view plaincopy to clipboardprint? using System; using Sys

全面解读PHP的Yii框架中的日志功能_php技巧

Yii页面级日志开启在 Main.php中 log段添加. 下面显示页面日志 array( 'class'=>'CWebLogRoute', 'levels'=>'trace', //级别为trace 'categories'=>'system.db.*' //只显示关于数据库信息,包括数据库连接,数据库执行语句 ), 完整如下: 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=&

用php代码限制国内IP访问我们网站_php技巧

利用淘宝的IP接口来判断IP,是否是国内的ip,是国内(CN)的就不允许访问. $ip = $_SERVER['REMOTE_ADDR']; $content = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip); $banned = json_decode(trim($content), true); $lan = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']

php设计模式 DAO(数据访问对象模式)_php技巧

复制代码 代码如下: <?php /** * 数据访问对象(Data Access Object) 示例 * * @create_date: 2010-01-04 */ class BaseDAO { var $_db = null; var $_table = null; function BaseDAO($config) { $this->_db = new MysqlDB(); // 这里的不能进行操作 } /** * 获取处理 * * @param array $filter // 过

PHP记录和读取JSON格式日志文件_php技巧

我们有时需要记录用户或者后端的某个操作事件的运行情况,可以使用后端语言如PHP将操作结果记录到日志文件中,方便测试和查找问题.尤其是这些在后端运行的而前端不能直接看到运行结果的,那么就可以用日志文件记录下来,如果你经常跟一些接口开发如支付宝接口.微信卡券接口打交道的话,日志记录就必不可少了.  我们讲的PHP记录日志,就是将日志信息写入到一个日志文件中,区别于内存日志.写入日志的流程是:打开日志文件(如果不存在则新创建),然后将日志内容追加到日志文件的后面,最后关闭日志文件. 本文中,我们将日志