于是昨天便认真的做了一下,功能多一点,可以对各种搜索引擎统计分析。可以在多个时间段进行查看。其实代码很简单,为了更简洁些,代码压缩到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 id="a-href-http-www-jianlila-com-target-blank-荐礼啦-a-蜘蛛查看器"><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>

종종 키워드와 추적 매개 변수로 혼란스러워하는 긴 URL은 방문자를 방해 할 수 있습니다. URL 단축 스크립트는 솔루션을 제공하여 소셜 미디어 및 기타 플랫폼에 이상적인 간결한 링크를 만듭니다. 이 스크립트는 개별 웹 사이트 a에 유용합니다

Instagram은 2012 년 Facebook에서 유명한 인수에 이어 타사 사용을 위해 두 개의 API 세트를 채택했습니다. Instagram Graph API 및 Instagram Basic Display API입니다. 개발자는

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

이것은 Laravel 백엔드가있는 React Application을 구축하는 데있어 시리즈의 두 번째이자 마지막 부분입니다. 이 시리즈의 첫 번째 부분에서는 기본 제품 목록 응용 프로그램을 위해 Laravel을 사용하여 편안한 API를 만들었습니다. 이 튜토리얼에서는 Dev가 될 것입니다

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> 'Hello World', 'github.com'=> [ 'foo'=> 'bar'], 'forge.laravel.com'=>

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

2025 PHP Landscape Survey는 현재 PHP 개발 동향을 조사합니다. 개발자와 비즈니스에 대한 통찰력을 제공하는 프레임 워크 사용, 배포 방법 및 과제를 탐색합니다. 이 조사는 현대 PHP Versio의 성장을 예상합니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
