php IIS日志分析搜索引擎爬虫记录程序第1/2页

 更新时间:2008年08月14日 19:19:35   转载 作者:  
由于最近比较忙,代码写得不怎么规范,界面也没有怎么美化,大家先用着吧,以后增加新功能会第一时间发布给大家!
使用注意:
  修改iis.php文件中iis日志的绝对路径
  例如:$folder=”c:/windows/system32/logfiles/站点日志目录/”; //后面记得一定要带斜杠(/)。
  ( 用虚拟空间的不懂查看你的站点绝对路径?上传个探针查看!
  直接查看法:http://站点域名/iis.php
  本地查看法:把日志下载到本地 http://127.0.0.1/iis.php )
  注意:
  //站点日志目录,注意该目录必须要有站点用户读取权限!
  //如果把日志下载到本地请修改143行的网址为您网站的网址,此操作不是必要操作,不影响分析结果。
  //修改文件名称iis.php 需要同时修改对应代码 ctrl+h 把 iis.php全部替换成您要修改的文件名 否则程序运行出错。
  //如果iis日志文件过大,可能会导致程序超时!同时也不建议大家使用! 
以下是PHP源代码:
[code]
<?php
 /*
  牛仔IIS日志蜘蛛爬行记录分析器 V1.1(PHP GB2312 版)
  作者:牛仔
  QQ:172379201
  Email:17gd@163.com
 */
 //===================================================
  header("content-type:text/html; charset=gb2312");
 //站点日志目录,注意该目录必须要有站点用户读取权限!
 $folder="C:/WINDOWS/system32/LogFiles/W3SVC1155699908/";//后面记得一定要带斜杠!
 $pagesize = 25;//设置分页显示条数!
 //=========================
$type = addslashes($_GET['type']);
if ($type)$type = base64_decode($type);
$showfile = addslashes($_GET['showfile']);
$page = addslashes($_GET['page']);
if (!$page)$page=1;
//============================
 //打开目录
 if (!$type){
    if (file_exists($folder))
    {
        $fp=opendir($folder);
        while(false!=$file=readdir($fp))
        {
        if($file!='.' &&$file!='..')
        {
            $file="$file";
            $arr_file[]=$file;
        }
        }
     if(is_array($arr_file))
     {
         for ($i=count($arr_file)-1;$i>=0;$i--)
         {
             $indexstr.="<tr><td height=\"25\" width=\"25%\">".date("Y-m-d",filectime($folder.$arr_file[$i]))."</td>
        <td height=\"25\" width=\"25%\" align=\"center\"><a href=\"iisfile.php?type=".base64_encode(Baiduspider)."&showfile=".$arr_file[$i]."\">百度(Baidu)</a></td>
        <td height=\"25\" width=\"25%\" align=\"center\"><a href=\"iisfile.php?type=".base64_encode(Googlebot)."&showfile=".$arr_file[$i]."\">谷歌(Google)</a></td>
        <td height=\"25\" width=\"25%\" align=\"center\"><a href=\"iisfile.php?type=".base64_encode(yahoo)."&showfile=".$arr_file[$i]."\">雅虎(yahoo)</a></td></tr>";
         }

   }
    closedir($fp);
    $html = indexhtml();
    $copy = mycopy();
    $html = str_replace("[showlog]",$indexstr,$html);
    $html = str_replace("[copy]",$copy,$html);
    echo $html;
}else{
        echo "该日志目录不存在或权限不足,请检查设置!";
        exit();
    }
 }elseif ($type=='Baiduspider'){
     echo show($type,$folder,$showfile,$page,$pagesize);
 }elseif ($type=='Googlebot'){
     echo show($type,$folder,$showfile,$page,$pagesize);
 }elseif ($type=='yahoo'){
     echo show($type,$folder,$showfile,$page,$pagesize);
 }

function show($type,$folder,$showfile,$page,$pagesize)
{
    if ($type=='Baiduspider')
    {
        $title='百度';
    }elseif ($type=='Googlebot'){
        $title='谷歌';
    }elseif ($type=='yahoo'){
        $title='雅虎';
    }
    if ($type&&$folder&&$showfile)
    {
        if(file_exists($folder.$showfile))
        {
        $fp= fopen($folder.$showfile,"r");
        }else{
            echo "该日志文件不存在,请检查设置!";
            exit;
        }
        $j=0;
        $y=0;
        $t=0;
        $h=0;
        while (!feof($fp))
        {
            $str = fgets($fp);
                $str =iconv("UTF-8","GB2312//IGNORE",$str);
            if(strpos($str,$type))
            {
                $j++;
                $temp[].=$str;
                $tmpcount = explode(" ",$str);
                if ($tmpcount[11]==200)$t++;
                if ($tmpcount[11]==304)$h++;
                if ($tmpcount[11]==404)$y++;
            }
        }
        fclose($fp);
        $count = count($temp);
        if ($page==1)
        {
            $countshow=$count;
            $mynum = $count-$pagesize;
        }else{
            $countshow =$count-($page*$pagesize-$pagesize);
            $mynum = $count-$page*$pagesize;
        }
        $pagecount =ceil(count($temp) / $pagesize);
        if ($page>=$pagecount)
        {
            $mynum = $pagecount;
        }
        $m=0;
        for ($i=$countshow-1;$i>=$mynum;$i--)
        {
            $num = explode(" ",$temp[$i]);
                $show.="
                    <tr>
                    <td heigth\"20\">".$num[0]." ".$num[1]."</td>
                    <td>".$num[9]."</td>
                    <td><a href=\"".rawurlencode($num[5])."\" target=\"_blank\">".$num[5]."</a></td>
                    <td>".$num[11]."</td>
                    </tr>";
        }
        unset($temp);
        $showpage = "<td colspan=\"4\" height=\"30\" align=\"center\">每页 ".$pagesize." 条 当前".$page."/$pagecount";
        $showpage.="  <a href=\"?type=".base64_encode($type)."&showfile=".$showfile."\">首页</a>";
        if ($page!=1)
        {
            $showpage.="  <a href=\"?type=".base64_encode($type)."&showfile=".$showfile."&page=".($page-1)."\">上一页</a>";
        }
        if ($page!=$pagecount)
        {
        $showpage.="  <a href=\"?type=".base64_encode($type)."&showfile=".$showfile."&page=".($page+1)."\">下一页</a>";
        $weei = "  <a href=\"?type=".base64_encode($type)."&showfile=".$showfile."&page=".($pagecount)."\">尾页</a>";
        }
        $showpage.=$weei."</td>";
        if ($show)
        {
        $html = pagehtml();
        $copy = mycopy();
        $htmltitle = "牛仔IIS日志蜘蛛爬行记录分析器-";//请保留,谢谢!
        $html = str_replace("[title]",$title,$html);
        $html = str_replace("[htmltitle]",$htmltitle,$html);
        $html = str_replace("[show]",$show,$html);
        $html = str_replace("[count]",$j,$html);
        $html = str_replace("

相关文章

  • ThinkPHP5&5.1框架关联模型分页操作示例

    ThinkPHP5&5.1框架关联模型分页操作示例

    这篇文章主要介绍了ThinkPHP5&5.1框架关联模型分页操作,结合实例形式分析了thinkPHP5、5.1关联模型的建立、控制器、模型的实现及分页操作相关技巧,需要的朋友可以参考下
    2019-08-08
  • thinkphp5框架实现的自定义扩展类操作示例

    thinkphp5框架实现的自定义扩展类操作示例

    这篇文章主要介绍了thinkphp5框架实现的自定义扩展类操作,结合实例形式简单分析了thinkPHP5在extend目录下建立自定义扩展类的具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • php json_encode与json_decode详解及实例

    php json_encode与json_decode详解及实例

    这篇文章主要介绍了php json_encode与json_decode详解及实例的相关资料,需要的朋友可以参考下
    2016-12-12
  • php笔记之:文章中图片处理的使用

    php笔记之:文章中图片处理的使用

    本篇文章介绍了,php文章中图片处理的使用。需要的朋友参考下
    2013-04-04
  • YII2.0之Activeform表单组件用法实例

    YII2.0之Activeform表单组件用法实例

    这篇文章主要介绍了YII2.0之Activeform表单组件用法,结合实例形式Activeform表单组件的具体类型及相关使用技巧,需要的朋友可以参考下
    2016-01-01
  • php编写的一个E-mail验证类

    php编写的一个E-mail验证类

    这篇文章主要介绍了php编写的一个E-mail验证类的用法,非常的简单实用,需要的小伙伴参考下,可以直接拿走使用。
    2015-03-03
  • 给大家分享几个常用的PHP函数

    给大家分享几个常用的PHP函数

    本文给大家分享的是pink自己写的几个常用的PHP函数,包括截取字符串,CURL封装以及分类树函数,有需要的小伙伴可以参考下
    2017-01-01
  • 在Mac OS上搭建PHP的Yii框架及相关测试环境

    在Mac OS上搭建PHP的Yii框架及相关测试环境

    这篇文章主要介绍了在Mac OS上搭建PHP的Yii框架及相关测试环境的方法,Mac自带Apache与PHP等软件,因而搭建开发环境时非常舒适,需要的朋友可以参考下
    2016-02-02
  • PHP SPL标准库之接口(Interface)详解

    PHP SPL标准库之接口(Interface)详解

    这篇文章主要介绍了PHP SPL标准库之接口(Interface)详解,本文分别讲解了Coutable接口、OuterIterator接口、RecursiveIterator接口、SeekableIterator接口、SplObserver和SplSubject接口等内容,需要的朋友可以参考下
    2015-05-05
  • 用来解析.htpasswd文件的PHP类

    用来解析.htpasswd文件的PHP类

    有时候需要获取.htpasswd文件的内容,那么就可以用下面的代码类了,需要的朋友可以参考下
    2012-09-09

最新评论