您好,欢迎访问一九零五行业门户网

访问日志统计_PHP

$y[0])
        return -1;
    else
        return 1;
}
function comparebyaccesstime ($x,$y)
{
    $x[1] = format2unixtime($x[1]);  //先格式化为unix时间戳
    $y[1] = format2unixtime($y[1]); //先格式化为unix时间戳
    if ( $x[1] == $y[1] )
        return 0;
    else if ($x[1] > $y[1])
        return -1;
    else
        return 1;
}
/*主函数getaccessbylog
$filename为文件路径,
$order为排序方式:
             0:按访问次数排序(缺省值)
      1:按最近一次访问的时间排序。
*/
function getaccessbylog ($filename,$order=0)
{
    if ( file_exists($filename) )
    {
        $handle = fopen ($filename, r);
        $ip_times = array();
        while (!feof ($handle)) {
            $buffer = fgets($handle, 999);
            if ((preg_match(#\d{1,2}\/\w{1,3}\/\d{1,4}\:\d{1,2}\:\d{1,2}\:\d{1,2}#,$buffer,$access_time)) && (preg_match(#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#,$buffer,$ip)))
                {
                $ip = $ip[0];
                $access_time = $access_time[0];
                if ( in_array($ip,array_keys($ip_times)))
                    {
                    $ip_times[$ip][0]++;   // $ip_times[$ip][0]为访问次数times
                    $ip_times[$ip][1]=$access_time;   //$ip_times[$ip][1]为访问时间access_time
                    }else
                        {
                        $ip_times[$ip][0] = 1;
                        $ip_times[$ip][1]=$access_time;
                        }
                }
            }
            fclose ($handle);
    }else
    {
        echo the log file does not exist.;
        exit;
    }
    if ( $order==1 )
    {
        $compare = comparebyaccesstime;    //按最近一次访问时间排序
        $title = 按最近一次访问时间排序;
    }else{
        $compare = comparebytimes;             //按访问次数排序
        $title = 按访问次数排序;
    }
     uasort( $ip_times, $compare );
echo
.$title.;
     foreach (  $ip_times as $ip=>$value )
         {
         echo ip:.$ip.
访问次数:.$value[0].,最近一次访问时间是:.$value[1].
;
         } }
###################################
###################################
###########  example  ################
$filename = c:/apache2/logs/access.log;
getaccessbylog($filename,0);
// 参数二意义   0:按访问次数排序(缺省值);1:按最近一次访问的时间排序。
?>
其它类似信息

推荐信息