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

5年以前  |  阅读数:903 次  |  编程语言:PHP 

于是昨天便认真的做了一下,功能多一点,可以对各种搜索引擎统计分析。可以在多个时间段进行查看。其实代码很简单,为了更简洁些,代码压缩到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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例