发款php蜘蛛统计插件只要有mysql就可用 |
本文标签:蜘蛛统计插件 于是昨天便认真的做了一下,功能多一点,可以对各种搜索引擎统计分析 。可以在多个时间段进行查看 。其实代码很简单,为了更简洁些,代码压缩到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> |