发款php蜘蛛统计插件只要有mysql就可用


Posted in PHP onOctober 12, 2010

于是昨天便认真的做了一下,功能多一点,可以对各种搜索引擎统计分析。可以在多个时间段进行查看。其实代码很简单,为了更简洁些,代码压缩到6k.分为6个文件
1.安装程序 spilder_install.php 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>安装插件</title> 
</head> 
<?php 
if($_POST['act']=='install')//如果是安装 
{ 
$mysql_host=trim($_POST['mysql_host']);//获取主机 
$mysql_user=trim($_POST['mysql_user']);//获取用户名 
$mysql_pwd=trim($_POST['mysql_pwd']);//获取密码 
$mysql_db=trim($_POST['mysql_db']);//数据库 
$table_prefix=trim($_POST['table_prefix']);//获取前缀 
if($link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd)) 
{ 
echo "连接服务器成功!.................<br>"; 
} 
else 
{ 
echo "<script>alert('链接出错!请检查数据库服务器配置!');history.go(-1);</script>"; 
} 
if(mysql_select_db($mysql_db,$link)) 
{ 
echo "连接数据库成功!.............<br>正在创建表................<br>"; 
} 
$sql="CREATE TABLE `spilder_sp_count` ( 
`id` bigint(20) NOT NULL auto_increment, 
`r_time` int(11) NOT NULL, 
`r_name` varchar(50) NOT NULL, 
`r_url` varchar(200) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=4 ; 
"; 
mysql_query("DROP TABLE IF EXISTS `".$table_prefix."sp_count`;");//删除已存在 
$sql=str_replace("spilder_",$table_prefix,$sql);//替换前缀 
if(mysql_query($sql)) 
{ 
echo "表创建成功!正在写入文件"; 
} 
$f=file_get_contents("spilder_config.php");//获取配置内容 
$f=str_replace(" ","",$f);//去除空格 
$f=preg_replace("/mysql_host=.*;/iUs","mysql_host='{$mysql_host}';",$f); 
$f=preg_replace("/mysql_user=.*;/iUs","mysql_user='{$mysql_user}';",$f); 
$f=preg_replace("/mysql_pwd=.*;/iUs","mysql_pwd='{$mysql_pwd}';",$f); 
$f=preg_replace("/mysql_db=.*;/iUs","mysql_db='{$mysql_db}';",$f); 
$f=preg_replace("/table_prefix=.*;/iUs","table_prefix='{$table_prefix}';",$f); 
$f=preg_replace("/sp_admin=.*;/iUs","sp_admin='{$sp_admin}';",$f); 
file_put_contents("spilder_config.php",$f); 
file_put_contents("isinstall.txt","OK"); 
echo "恭喜!荐礼啦蜘蛛统计程序安装成功 <a href=\"index.php\">查看</a>"; 
exit(); 
} 
?> 
<body> 
<table width="600" border="0" align="center"> 
<tr> 
<td align="center">荐礼啦 蜘蛛统计查看器</td> 
</tr> 
</table> 
<form method="post"> 
<table width="600" border="0" align="center" cellspacing="0"> 
<tr> 
<td width="280"> </td> 
<td width="610">开始安装</td> 
</tr> 
<tr> 
<td align="right">服务器:</td> 
<td><input name="mysql_host" type="text" id="mysql_host" value="localhost" /> 
(一般不用改)</td> 
</tr> 
<tr> 
<td align="right">用户名:</td> 
<td><input type="text" name="mysql_user" id="mysql_user" /></td> 
</tr> 
<tr> 
<td align="right">密码:</td> 
<td><input type="password" name="mysql_pwd" id="mysql_pwd" /></td> 
</tr> 
<tr> 
<td align="right">数据库:</td> 
<td><input type="text" name="mysql_db" id="mysql_db" /></td> 
</tr> 
<tr> 
<td align="right">表前缀:</td> 
<td><input name="table_prefix" type="text" id="table_prefix" value="spilder_" /> 
<input name="act" type="hidden" id="act" value="install" /></td> 
</tr> 
<tr> 
<td align="right">管理密码:</td> 
<td><input type="password" name="sp_admin" id="sp_admin" /></td> 
</tr> 
<tr> 
<td align="right"> </td> 
<td><input type="submit" name="button" id="button" value="安装" /></td> 
</tr> 
</table> 
</form> 
</body> 
</html>

2.蜘蛛记录文件

<?php 
require("spilder_config.php");//调用配置文件 
$link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd) or die("服务器连接出错");//链接数据库 
mysql_select_db($mysql_db,$link) or die('数据库连接出错'); 
$searchbot = get_naps_bot(); 
if($searchbot) 
{ 
date_default_timezone_set('PRC'); //设置默认时区 
$r_time=strtotime(date("Y-m-d H:i:s"));//最后更新时间 
$ServerName = $_SERVER["SERVER_NAME"] ; 
$ServerPort = $_SERVER["SERVER_PORT"] ; 
$ScriptName = $_SERVER["SCRIPT_NAME"] ; 
$QueryString = $_SERVER["QUERY_STRING"] ; 
$url="http://".$ServerName ; 
If ($ServerPort != "80") 
{ 
$url = $url.":".$ServerPort ; 
} 
$url=$url.$ScriptName ; 
If ($QueryString !="") 
{ 
$url=$url."?".$QueryString ; 
} 
//$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
$GLOBALS['db']->db_query("insert into {$table_prefix}sp_count(r_time,r_name,r_url) values('$r_time','$searchbot','$url')"); 
} 
function get_naps_bot() 
{ 
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']); 
if (strpos($useragent, 'googlebot') !== false){ 
return 'Googlebot'; 
}elseif (strpos($useragent, 'msnbot') !== false){ 
return 'MSNbot'; 
}elseif (strpos($useragent, 'slurp') !== false){ 
return 'Yahoobot'; 
}elseif (strpos($useragent, 'baiduspider') !== false){ 
return 'Baiduspider'; 
}elseif (strpos($useragent, 'sogou') !== false){ 
return 'Sogoubot'; 
}elseif (strpos($useragent,'soso') !== false){ 
return 'Sosobot'; 
}elseif(strpos($useragent,'youdao')!==false) 
{ 
return 'Youdao'; 
} 
else 
{ 
return false; 
} 
} 
?>

3.蜘蛛统计查看文件

<?php 
session_start(); 
require("spilder_config.php"); 
if($_GET['act']=='logout') 
{ 
$_SESSION['ss_sp_admin']='';//清空 
} 
if($_GET['sp_admin_login']) 
{ 
if($_GET['sp_admin_login']==$sp_admin) 
{ 
$_SESSION['ss_sp_admin']=$sp_admin; 
} 
} 
date_default_timezone_set('PRC'); //设置默认时区 
$day_start=strtotime(date("Ymd")."000001");//一天的开始时间 
$day_out=strtotime(date("Ymd")."235959");//一天的结束时间 
$day=3600*24;//一天的时间 
$link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd) or die("服务器连接出错"); 
mysql_select_db($mysql_db,$link) or die('链接数据库出错');//连接数据库 
if($_GET['act']=='del') 
{ 
if($_SESSION['ss_sp_admin']<>'') 
{ 
if($_GET['dt']==0)//清空 
{ 
mysql_query("delete from {$table_prefix}sp_count "); 
} 
$d_time=0; 
if($_GET['dt']==1)//删除30天前 
{ 
$d_time=$day_out-$day*30; 
}elseif($_GET['dt']==2)//删除60天前 
{ 
$d_time=$day_out-$day*60; 
}elseif($_GET['dt']==3)//删除90天前 
{ 
$d_time=$day_out-$day*90; 
}elseif($_GET['dt']==4)//删除180天前 
{ 
$d_time=$day_out-$day*180; 
}elseif($_GET['dt']==5)//删除360天前 
{ 
$d_time=$day_out-$day*360; 
} 
if($d_time>0) 
{ 
mysql_query("delete from {$table_prefix}sp_count where r_time<'$d_time'");//删除数据 
} 
} 
} 
$ss=intval($_GET['ss']); 
if($ss>0)//查看分类统计 
{ 
if($ss==999)//清空分类 
{ 
$_SESSION['ss_ss']=''; 
}else 
{ 
$_SESSION['ss_ss']=$ss; 
} 
} 
$ss=$_SESSION['ss_ss']; 
if($ss==1) 
{ 
$ss='Baiduspider'; 
}elseif($ss==2) 
{ 
$ss='Googlebot'; 
}elseif($ss==3) 
{ 
$ss="MSNbot"; 
}elseif($ss==4) 
{ 
$ss="Yahoobot"; 
}elseif($ss==5) 
{ 
$ss="Sogoubot"; 
}elseif($ss==6) 
{ 
$ss="Sosobot"; 
}elseif($ss==7) 
{ 
$ss=7; 
} 
$t=intval($_GET['t']);//查看时间分类统计 
if($t==0)//时时情况 
{ 
if(empty($_SESSION['ss_ss'])) 
{ 
$sql =" select * from {$table_prefix}sp_count order by id desc ";//最新情况 
$sql2="select count(*) from {$table_prefix}sp_count "; 
}else 
{ 
$sql="select * from {$table_prefix}sp_count where r_name='$ss' order by id desc "; 
$sql2="select count(*) from {$table_prefix}sp_count where r_name='$ss' "; 
} 
$rscount=mysql_query($sql2); 
$rscount=@mysql_fetch_array($rscount); 
$rscount=$rscount[0];//获取总记录数 
$page=intval(trim($_GET['page']));//当前页数 
$pagesize=30;//每页记录数 
$pagecount=ceil($rscount/$pagesize);//获取总页数 
$pageurl=""; 
if($page<=1) 
{ 
$page=1; 
$pageurl.=" 首页 上一页"; 
}else 
{ 
$pageurl .=" <a href='?page=1&ss=".$ss."'>首页</a>  <a href='?ss=".$ss."&page=".($page-1)."'>上一页</a>"; 
} 
if($page>=$pagecount) 
{ 
$page=$pagecount; 
$pageurl .=" 下一页  尾页"; 
}else 
{ 
$pageurl .=" <a href='?ss=".$ss."&page=".($page+1)."'>下一页</a>  <a href='?ss=".$ss."&page=".$pagecount."'>尾页</a>"; 
} 
if($page<=1) 
{ 
$page=1; 
} 
$start_rs=intval(($page-1)*$pagesize);//开始 
$end_rs=intval($page*$pagesize);//结束 
$sql .=" limit {$start_rs},{$end_rs} "; 
} 
if($t==1)//查看今天天统计 
{ 
$s_time=$day_start;//开始时间 
$e_time=$day_out;//结束时间 
$sql="select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name "; 
}elseif($t==2)//查看昨天统计 
{ 
$s_time=$day_start-$day;//开始 
$e_time=$day_out-$day;//结束 
$sql="select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name "; 
}elseif($t==3)//查看前天天的统计 
{ 
$s_time=$day_start-$day*2; 
$e_time=$day_out-$day*2; 
$sql="select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name"; 
}elseif($t==4)//查看七天的统计 
{ 
$s_time=$day_start-$day*7; 
$e_time=$day_out; 
$sql="select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name "; 
} 
elseif($t==5)//查看30天的 
{ 
$s_time=$day_start-$day*30; 
$e_time=$day_out; 
$sql="select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name "; 
}elseif($t==6)//查看90天的统计 
{ 
$s_time=$day_start-$day*90; 
$e_time=$day_out; 
$sql="select count(*) as ct,r_name from {$table_prefix}sp_count where r_time between '$s_time' and '$e_time' group by r_name "; 
} 
$res=mysql_query($sql);// or die("请先安装程序<a href='spilder_install.php'>安装</a>"); 
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>显示蜘蛛记录情况</title> 
<style type="text/css"> 
td{font-size:14px;} 
a,a:link{text-decoration:none; color:#000; } 
a:hover{color:#F00;} 
</style> 
</head> 
<body> 
<table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-bottom:6px;"> 
<tr> 
<td height="28" align="center" bgcolor="#66CC00"><h1><a href="http://www.jianlila.com" target="_blank">荐礼啦</a> 蜘蛛查看器</h1></td> 
</tr> 
</table> 
<table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td width="65" height="38" bgcolor="#FFFFFF">分类查看</td> 
<td width="403" align="center" bgcolor="#FFFFFF">   
<a href="?ss=999">所有的</a>  
<a href="?ss=1">百度</a>   
<a href="?ss=2">谷歌</a>   
<a href="?ss=3">必应</a>  
<a href="?ss=4">雅虎</a>  
<a href="?ss=5">搜狗</a>   
<a href="?ss=6">搜搜</a>  
<a href="?ss=7">有道</a></td> 
<td width="322" bgcolor="#FFFFFF">  
<a href="?t=0">时时</a>   
<a href="?t=1">今天</a>  
<a href="?t=2">昨天</a>  
<a href="?t=3">前天</a>  
<a href="?t=4">七天</a>  
<a href="?t=4">30天</a>  
<a href="?t=5">90天</a>  
</td> 
</tr> 
</table> 
<?php 
if($_SESSION['ss_sp_admin']==$sp_admin) 
{ 
?> 
<table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:12px; margin-bottom:12px;"> 
<tr> 
<td width="208" align="right" bgcolor="#FFFFFF">管理  <a href="?act=logout">退出</a>   </td> 
<td width="585" align="center" bgcolor="#FFFFFF"> 
<a href="?act=del&dt=0" onclick="return confirm('确定清空')">清空</a>   
<a href="?act=del&dt=1" onclick="return confirm('确定删除?')">30天前</a>   
<a href="?act=del&dt=2" onclick="return confirm('确定删除?')">60天前</a>   
<a href="?act=del&dt=3" onclick="return confirm('确定删除?')">90天前</a>    
<a href="?act=del&dt=4" onclick="return confirm('确定删除?')">180天前</a>   
<a href="?act=del&dt=5" onclick="return confirm('确定删除?')">360天前</a></td> 
</tr> 
</table> 
<?php 
} 
?> 
<?php 
if($t==0) 
{ 
?> 
<table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:6px;"> 
<tr> 
<td width="133" align="center" bgcolor="#FFFFFF">蜘蛛</td> 
<td width="217" align="center" bgcolor="#FFFFFF">时间</td> 
<td width="440" align="center" bgcolor="#FFFFFF">地址</td> 
</tr> 
<?php 
while($rs=mysql_fetch_array($res)) 
{ 
?> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><?php echo $rs['r_name'];?></td> 
<td align="center" bgcolor="#FFFFFF"><?php echo date("Y-m-d H:i:s",$rs['r_time']); ?></td> 
<td align="center" bgcolor="#FFFFFF"><a href="<?php echo $rs['r_url'];?>" target="_blank"> <?php echo $rs['r_url'];?></a></td> 
</tr> 
<?php 
} 
?> 
</table> 
<table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:20px; margin-bottom:20px;"> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><?php echo $pageurl;?></td> 
</tr> 
</table> 
<?php 
}else{ 
?> 
<table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:6px;"> 
<tr> 
<td width="219" align="center" bgcolor="#FFFFFF">蜘蛛</td> 
<td width="574" align="center" bgcolor="#FFFFFF">统计</td> 
</tr> 
<?php 
while($rs=mysql_fetch_array($res)) 
{ 
?> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><?php echo $rs['r_name'] ?></td> 
<td align="center" bgcolor="#FFFFFF"><?php echo $rs['ct'];?></td> 
</tr> 
<?php 
} 
?> 
</table> 
<?php 
} 
?> 
</body> 
</html>
PHP 相关文章推荐
如何实现给定日期的若干天以后的日期
Oct 09 PHP
zend framework多模块多布局配置
Feb 26 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
PHP会话处理的10个函数
Aug 11 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
smarty自定义函数用法示例
May 20 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
PHP中创建和编辑Excel表格的方法
Sep 13 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 #PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 #PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 #PHP
php知道与问问的采集插件代码
Oct 12 #PHP
php笔记之常用文件操作
Oct 12 #PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 #PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 #PHP
You might like
php5.2.0内存管理改进
2007/01/22 PHP
再次研究下cache_lite
2007/02/14 PHP
Discuz! Passport 通行证整合
2008/03/27 PHP
一步一步学习PHP(8) php 数组
2010/03/05 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
python调用API实现智能回复机器人
2018/04/10 Python
python os模块简单应用示例
2019/05/23 Python
Python timeit模块的使用实践
2020/01/13 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
收银员岗位职责
2014/02/07 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
消防工作实施方案
2014/06/09 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
入党个人总结范文
2015/03/02 职场文书
POST提交数据常见的四种方式
2022/01/18 HTML / CSS
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android