当前位置:Gxlcms > php框架 > 发款php蜘蛛统计插件只要有mysql就可用

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

时间:2021-07-01 10:21:17 帮助过:10人阅读

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

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>安装插件</title>
  6. </head>
  7. <?php
  8. if($_POST['act']=='install')//如果是安装
  9. {
  10. $mysql_host=trim($_POST['mysql_host']);//获取主机
  11. $mysql_user=trim($_POST['mysql_user']);//获取用户名
  12. $mysql_pwd=trim($_POST['mysql_pwd']);//获取密码
  13. $mysql_db=trim($_POST['mysql_db']);//数据库
  14. $table_prefix=trim($_POST['table_prefix']);//获取前缀
  15. if($link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd))
  16. {
  17. echo "连接服务器成功!.................<br>";
  18. }
  19. else
  20. {
  21. echo "<script>alert('链接出错!请检查数据库服务器配置!');history.go(-1);</script>";
  22. }
  23. if(mysql_select_db($mysql_db,$link))
  24. {
  25. echo "连接数据库成功!.............<br>正在创建表................<br>";
  26. }
  27. $sql="CREATE TABLE `spilder_sp_count` (
  28. `id` bigint(20) NOT NULL auto_increment,
  29. `r_time` int(11) NOT NULL,
  30. `r_name` varchar(50) NOT NULL,
  31. `r_url` varchar(200) NOT NULL,
  32. PRIMARY KEY (`id`)
  33. ) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=4 ;
  34. ";
  35. mysql_query("DROP TABLE IF EXISTS `".$table_prefix."sp_count`;");//删除已存在
  36. $sql=str_replace("spilder_",$table_prefix,$sql);//替换前缀
  37. if(mysql_query($sql))
  38. {
  39. echo "表创建成功!正在写入文件";
  40. }
  41. $f=file_get_contents("spilder_config.php");//获取配置内容
  42. $f=str_replace(" ","",$f);//去除空格
  43. $f=preg_replace("/mysql_host=.*;/iUs","mysql_host='{$mysql_host}';",$f);
  44. $f=preg_replace("/mysql_user=.*;/iUs","mysql_user='{$mysql_user}';",$f);
  45. $f=preg_replace("/mysql_pwd=.*;/iUs","mysql_pwd='{$mysql_pwd}';",$f);
  46. $f=preg_replace("/mysql_db=.*;/iUs","mysql_db='{$mysql_db}';",$f);
  47. $f=preg_replace("/table_prefix=.*;/iUs","table_prefix='{$table_prefix}';",$f);
  48. $f=preg_replace("/sp_admin=.*;/iUs","sp_admin='{$sp_admin}';",$f);
  49. file_put_contents("spilder_config.php",$f);
  50. file_put_contents("isinstall.txt","OK");
  51. echo "恭喜!荐礼啦蜘蛛统计程序安装成功 <a href=\"index.php\">查看</a>";
  52. exit();
  53. }
  54. ?>
  55. <body>
  56. <table width="600" border="0" align="center">
  57. <tr>
  58. <td align="center">荐礼啦 蜘蛛统计查看器</td>
  59. </tr>
  60. </table>
  61. <form method="post">
  62. <table width="600" border="0" align="center" cellspacing="0">
  63. <tr>
  64. <td width="280"> </td>
  65. <td width="610">开始安装</td>
  66. </tr>
  67. <tr>
  68. <td align="right">服务器:</td>
  69. <td><input name="mysql_host" type="text" id="mysql_host" value="localhost" />
  70. (一般不用改)</td>
  71. </tr>
  72. <tr>
  73. <td align="right">用户名:</td>
  74. <td><input type="text" name="mysql_user" id="mysql_user" /></td>
  75. </tr>
  76. <tr>
  77. <td align="right">密码:</td>
  78. <td><input type="password" name="mysql_pwd" id="mysql_pwd" /></td>
  79. </tr>
  80. <tr>
  81. <td align="right">数据库:</td>
  82. <td><input type="text" name="mysql_db" id="mysql_db" /></td>
  83. </tr>
  84. <tr>
  85. <td align="right">表前缀:</td>
  86. <td><input name="table_prefix" type="text" id="table_prefix" value="spilder_" />
  87. <input name="act" type="hidden" id="act" value="install" /></td>
  88. </tr>
  89. <tr>
  90. <td align="right">管理密码:</td>
  91. <td><input type="password" name="sp_admin" id="sp_admin" /></td>
  92. </tr>
  93. <tr>
  94. <td align="right"> </td>
  95. <td><input type="submit" name="button" id="button" value="安装" /></td>
  96. </tr>
  97. </table>
  98. </form>
  99. </body>
  100. </html>


2.蜘蛛记录文件

  1. <?php
  2. require("spilder_config.php");//调用配置文件
  3. $link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd) or die("服务器连接出错");//链接数据库
  4. mysql_select_db($mysql_db,$link) or die('数据库连接出错');
  5. $searchbot = get_naps_bot();
  6. if($searchbot)
  7. {
  8. date_default_timezone_set('PRC'); //设置默认时区
  9. $r_time=strtotime(date("Y-m-d H:i:s"));//最后更新时间
  10. $ServerName = $_SERVER["SERVER_NAME"] ;
  11. $ServerPort = $_SERVER["SERVER_PORT"] ;
  12. $ScriptName = $_SERVER["SCRIPT_NAME"] ;
  13. $QueryString = $_SERVER["QUERY_STRING"] ;
  14. $url="http://".$ServerName ;
  15. If ($ServerPort != "80")
  16. {
  17. $url = $url.":".$ServerPort ;
  18. }
  19. $url=$url.$ScriptName ;
  20. If ($QueryString !="")
  21. {
  22. $url=$url."?".$QueryString ;
  23. }
  24. //$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  25. $GLOBALS['db']->db_query("insert into {$table_prefix}sp_count(r_time,r_name,r_url) values('$r_time','$searchbot','$url')");
  26. }
  27. function get_naps_bot()
  28. {
  29. $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
  30. if (strpos($useragent, 'googlebot') !== false){
  31. return 'Googlebot';
  32. }elseif (strpos($useragent, 'msnbot') !== false){
  33. return 'MSNbot';
  34. }elseif (strpos($useragent, 'slurp') !== false){
  35. return 'Yahoobot';
  36. }elseif (strpos($useragent, 'baiduspider') !== false){
  37. return 'Baiduspider';
  38. }elseif (strpos($useragent, 'sogou') !== false){
  39. return 'Sogoubot';
  40. }elseif (strpos($useragent,'soso') !== false){
  41. return 'Sosobot';
  42. }elseif(strpos($useragent,'youdao')!==false)
  43. {
  44. return 'Youdao';
  45. }
  46. else
  47. {
  48. return false;
  49. }
  50. }
  51. ?>

3.蜘蛛统计查看文件

  1. <?php
  2. session_start();
  3. require("spilder_config.php");
  4. if($_GET['act']=='logout')
  5. {
  6. $_SESSION['ss_sp_admin']='';//清空
  7. }
  8. if($_GET['sp_admin_login'])
  9. {
  10. if($_GET['sp_admin_login']==$sp_admin)
  11. {
  12. $_SESSION['ss_sp_admin']=$sp_admin;
  13. }
  14. }
  15. date_default_timezone_set('PRC'); //设置默认时区
  16. $day_start=strtotime(date("Ymd")."000001");//一天的开始时间
  17. $day_out=strtotime(date("Ymd")."235959");//一天的结束时间
  18. $day=3600*24;//一天的时间
  19. $link=mysql_connect($mysql_host,$mysql_user,$mysql_pwd) or die("服务器连接出错");
  20. mysql_select_db($mysql_db,$link) or die('链接数据库出错');//连接数据库
  21. if($_GET['act']=='del')
  22. {
  23. if($_SESSION['ss_sp_admin']<>'')
  24. {
  25. if($_GET['dt']==0)//清空
  26. {
  27. mysql_query("delete from {$table_prefix}sp_count ");
  28. }
  29. $d_time=0;
  30. if($_GET['dt']==1)//删除30天前
  31. {
  32. $d_time=$day_out-$day*30;
  33. }elseif($_GET['dt']==2)//删除60天前
  34. {
  35. $d_time=$day_out-$day*60;
  36. }elseif($_GET['dt']==3)//删除90天前
  37. {
  38. $d_time=$day_out-$day*90;
  39. }elseif($_GET['dt']==4)//删除180天前
  40. {
  41. $d_time=$day_out-$day*180;
  42. }elseif($_GET['dt']==5)//删除360天前
  43. {
  44. $d_time=$day_out-$day*360;
  45. }
  46. if($d_time>0)
  47. {
  48. mysql_query("delete from {$table_prefix}sp_count where r_time<'$d_time'");//删除数据
  49. }
  50. }
  51. }
  52. $ss=intval($_GET['ss']);
  53. if($ss>0)//查看分类统计
  54. {
  55. if($ss==999)//清空分类
  56. {
  57. $_SESSION['ss_ss']='';
  58. }else
  59. {
  60. $_SESSION['ss_ss']=$ss;
  61. }
  62. }
  63. $ss=$_SESSION['ss_ss'];
  64. if($ss==1)
  65. {
  66. $ss='Baiduspider';
  67. }elseif($ss==2)
  68. {
  69. $ss='Googlebot';
  70. }elseif($ss==3)
  71. {
  72. $ss="MSNbot";
  73. }elseif($ss==4)
  74. {
  75. $ss="Yahoobot";
  76. }elseif($ss==5)
  77. {
  78. $ss="Sogoubot";
  79. }elseif($ss==6)
  80. {
  81. $ss="Sosobot";
  82. }elseif($ss==7)
  83. {
  84. $ss=7;
  85. }
  86. $t=intval($_GET['t']);//查看时间分类统计
  87. if($t==0)//时时情况
  88. {
  89. if(empty($_SESSION['ss_ss']))
  90. {
  91. $sql =" select * from {$table_prefix}sp_count order by id desc ";//最新情况
  92. $sql2="select count(*) from {$table_prefix}sp_count ";
  93. }else
  94. {
  95. $sql="select * from {$table_prefix}sp_count where r_name='$ss' order by id desc ";
  96. $sql2="select count(*) from {$table_prefix}sp_count where r_name='$ss' ";
  97. }
  98. $rscount=mysql_query($sql2);
  99. $rscount=@mysql_fetch_array($rscount);
  100. $rscount=$rscount[0];//获取总记录数
  101. $page=intval(trim($_GET['page']));//当前页数
  102. $pagesize=30;//每页记录数
  103. $pagecount=ceil($rscount/$pagesize);//获取总页数
  104. $pageurl="";
  105. if($page<=1)
  106. {
  107. $page=1;
  108. $pageurl.=" 首页 上一页";
  109. }else
  110. {
  111. $pageurl .=" <a href='?page=1&ss=".$ss."'>首页</a>  <a href='?ss=".$ss."&page=".($page-1)."'>上一页</a>";
  112. }
  113. if($page>=$pagecount)
  114. {
  115. $page=$pagecount;
  116. $pageurl .=" 下一页  尾页";
  117. }else
  118. {
  119. $pageurl .=" <a href='?ss=".$ss."&page=".($page+1)."'>下一页</a>  <a href='?ss=".$ss."&page=".$pagecount."'>尾页</a>";
  120. }
  121. if($page<=1)
  122. {
  123. $page=1;
  124. }
  125. $start_rs=intval(($page-1)*$pagesize);//开始
  126. $end_rs=intval($page*$pagesize);//结束
  127. $sql .=" limit {$start_rs},{$end_rs} ";
  128. }
  129. if($t==1)//查看今天天统计
  130. {
  131. $s_time=$day_start;//开始时间
  132. $e_time=$day_out;//结束时间
  133. $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 ";
  134. }elseif($t==2)//查看昨天统计
  135. {
  136. $s_time=$day_start-$day;//开始
  137. $e_time=$day_out-$day;//结束
  138. $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 ";
  139. }elseif($t==3)//查看前天天的统计
  140. {
  141. $s_time=$day_start-$day*2;
  142. $e_time=$day_out-$day*2;
  143. $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";
  144. }elseif($t==4)//查看七天的统计
  145. {
  146. $s_time=$day_start-$day*7;
  147. $e_time=$day_out;
  148. $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 ";
  149. }
  150. elseif($t==5)//查看30天的
  151. {
  152. $s_time=$day_start-$day*30;
  153. $e_time=$day_out;
  154. $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 ";
  155. }elseif($t==6)//查看90天的统计
  156. {
  157. $s_time=$day_start-$day*90;
  158. $e_time=$day_out;
  159. $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 ";
  160. }
  161. $res=mysql_query($sql);// or die("请先安装程序<a href='spilder_install.php'>安装</a>");
  162. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  163. <html xmlns="http://www.w3.org/1999/xhtml">
  164. <head>
  165. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  166. <title>显示蜘蛛记录情况</title>
  167. <style type="text/css">
  168. td{font-size:14px;}
  169. a,a:link{text-decoration:none; color:#000; }
  170. a:hover{color:#F00;}
  171. </style>
  172. </head>
  173. <body>
  174. <table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-bottom:6px;">
  175. <tr>
  176. <td height="28" align="center" bgcolor="#66CC00"><h1><a href="http://www.jianlila.com" target="_blank">荐礼啦</a> 蜘蛛查看器</h1></td>
  177. </tr>
  178. </table>
  179. <table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC">
  180. <tr>
  181. <td width="65" height="38" bgcolor="#FFFFFF">分类查看</td>
  182. <td width="403" align="center" bgcolor="#FFFFFF">  
  183. <a href="?ss=999">所有的</a> 
  184. <a href="?ss=1">百度</a>  
  185. <a href="?ss=2">谷歌</a>  
  186. <a href="?ss=3">必应</a> 
  187. <a href="?ss=4">雅虎</a> 
  188. <a href="?ss=5">搜狗</a>  
  189. <a href="?ss=6">搜搜</a> 
  190. <a href="?ss=7">有道</a></td>
  191. <td width="322" bgcolor="#FFFFFF"> 
  192. <a href="?t=0">时时</a>  
  193. <a href="?t=1">今天</a> 
  194. <a href="?t=2">昨天</a> 
  195. <a href="?t=3">前天</a> 
  196. <a href="?t=4">七天</a> 
  197. <a href="?t=4">30天</a> 
  198. <a href="?t=5">90天</a> 
  199. </td>
  200. </tr>
  201. </table>
  202. <?php
  203. if($_SESSION['ss_sp_admin']==$sp_admin)
  204. {
  205. ?>
  206. <table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:12px; margin-bottom:12px;">
  207. <tr>
  208. <td width="208" align="right" bgcolor="#FFFFFF">管理  <a href="?act=logout">退出</a>   </td>
  209. <td width="585" align="center" bgcolor="#FFFFFF">
  210. <a href="?act=del&dt=0" onclick="return confirm('确定清空')">清空</a>  
  211. <a href="?act=del&dt=1" onclick="return confirm('确定删除?')">30天前</a>  
  212. <a href="?act=del&dt=2" onclick="return confirm('确定删除?')">60天前</a>  
  213. <a href="?act=del&dt=3" onclick="return confirm('确定删除?')">90天前</a>   
  214. <a href="?act=del&dt=4" onclick="return confirm('确定删除?')">180天前</a>  
  215. <a href="?act=del&dt=5" onclick="return confirm('确定删除?')">360天前</a></td>
  216. </tr>
  217. </table>
  218. <?php
  219. }
  220. ?>
  221. <?php
  222. if($t==0)
  223. {
  224. ?>
  225. <table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:6px;">
  226. <tr>
  227. <td width="133" align="center" bgcolor="#FFFFFF">蜘蛛</td>
  228. <td width="217" align="center" bgcolor="#FFFFFF">时间</td>
  229. <td width="440" align="center" bgcolor="#FFFFFF">地址</td>
  230. </tr>
  231. <?php
  232. while($rs=mysql_fetch_array($res))
  233. {
  234. ?>
  235. <tr>
  236. <td align="center" bgcolor="#FFFFFF"><?php echo $rs['r_name'];?></td>
  237. <td align="center" bgcolor="#FFFFFF"><?php echo date("Y-m-d H:i:s",$rs['r_time']); ?></td>
  238. <td align="center" bgcolor="#FFFFFF"><a href="<?php echo $rs['r_url'];?>" target="_blank"> <?php echo $rs['r_url'];?></a></td>
  239. </tr>
  240. <?php
  241. }
  242. ?>
  243. </table>
  244. <table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:20px; margin-bottom:20px;">
  245. <tr>
  246. <td align="center" bgcolor="#FFFFFF"><?php echo $pageurl;?></td>
  247. </tr>
  248. </table>
  249. <?php
  250. }else{
  251. ?>
  252. <table width="800" border="0" align="center" cellspacing="1" bgcolor="#CCCCCC" style="margin-top:6px;">
  253. <tr>
  254. <td width="219" align="center" bgcolor="#FFFFFF">蜘蛛</td>
  255. <td width="574" align="center" bgcolor="#FFFFFF">统计</td>
  256. </tr>
  257. <?php
  258. while($rs=mysql_fetch_array($res))
  259. {
  260. ?>
  261. <tr>
  262. <td align="center" bgcolor="#FFFFFF"><?php echo $rs['r_name'] ?></td>
  263. <td align="center" bgcolor="#FFFFFF"><?php echo $rs['ct'];?></td>
  264. </tr>
  265. <?php
  266. }
  267. ?>
  268. </table>
  269. <?php
  270. }
  271. ?>
  272. </body>
  273. </html>

人气教程排行