//////// 以下はサブルーチン function make_date($t) { //日付の表示を得る $wdays = array("日","月","火","水","木","金","土"); $data=getdate($t); return sprintf("%d/%02d/%02d(%s) %02d:%02d:%02d",$data[year], $data[mon], $data[mday], $wdays[$data[wday]], $data[hours], $data[minutes], $data[seconds]); } function make_agent($agent) { //ブラウザ名を得る if ($agent == "-"){return "-";} $ereg_replace("%23","3",$agent); return $agent; } function make_link($ref) { //リンクのタグを作る if ($ref == "-" || !eregi("^http:",$ref)){ return "-"; } $name = $ref; $name=urldecode($name); $name=ereg_replace("&","&",$name); $name=ereg_replace("<","<",$name); $name=ereg_replace(">",">",$name); $name=ereg_replace("\"",""",$name); // $name=i18n_convert($name,"SJIS"); return "$name"; } //function error() { エラー出力 // local($mesg) = @_; // print "Content-type: text/html\n\n"; // print "
$mesg
\n"; //} function make_host($addr){ //ホスト名を得る if($addr == ""){return "-" ;} if ($hname[$addr] == "" && ereg("([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})",$addr,$sakai)) { // $spp=(pack("C4",$sakai[0],$sakai[1],$sakai[2],$sakai[3])); if($hname[$addr] = gethostbyaddr($addr)){ return $hname[$addr]; } }else{ return $addr; } } $logfile = "access.log"; #ログファイル $max=40; $ip=fopen($logfile,"r"); if($ip == FALSE){ echo "ログファイルを準備してください。"; exit; }else{ flock($ip,2); $logs=file($logfile); flock($ip,3); fclose($ip); $changed = "";//変更ありフラグをオフにする while( list( $key, $val ) = each( $logs ) ){ list($date,$host,$agent,$ref,$thisfile) = split("#",$val);//ラインを分解 if (ereg("^!(.*)",$date,$regs)) { //日時の頭に"!"があれば $date = $regs[1]; //日時の頭から"!"を取る $host = make_host($host); //ホスト名を正規化 if($agent == ""){ //ブラウザ名がなければ"-"にする $agent = "-"; } if($ref == ""){ //参照元URLがなければ"-"にする $ref = "-" ; } $line = join(array($date,$host,$agent,$ref,$thisfile),"#"); //ラインを再構成 $changed = 1; //変更ありフラグをオンにする }else{ $line=$val; } $log.=$line; } if ($changed) { //変更があったら $fp = fopen($logfile, "w+"); flock($fp,2); fwrite($fp,$log); flock($fp,3); fclose($fp); } ?>ログ採取期間 %s 〜 %s
\n", make_date($old), make_date($now)); if ($days > 0) { printf("%d アクセス / %.2f 日 ", $nlogs, $days); printf("(平均 %.2f アクセス/日)
\n", $nlogs / $days); } } ?>| 訪問時刻 | ホスト | ブラウザ | 参照元URL | 訪問ファイル |
| " . make_date($date) . " | "; print "". $host . " | "; print "$agent | "; print "" . make_link($ref) . " | "; print "" . $thisfile . " | "; print "