",">",$name); $name=ereg_replace("\"",""",$name); // $name=i18n_convert($name,"SJIS"); return "$name"; } //function error() { エラー出力 // local($mesg) = @_; // print "Content-type: text/html\n\n"; // print "アクセスログ\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); } ?> アクセスログ

アクセスログ

0) { $now=Date(U,time()); //現在の時刻 list($old,$host,$agent,$ref,$thisfile) = (split("#", $logs[$nlogs])); //いちばん古いログの時刻 $old=strftime($old); $days = ($now - $old) / (60 * 60 * 24); //ログを取った期間(日数) printf("

ログ採取期間 %s 〜 %s

\n", make_date($old), make_date($now)); if ($days > 0) { printf("

%d アクセス / %.2f 日 ", $nlogs, $days); printf("(平均 %.2f アクセス/日)

\n", $nlogs / $days); } } ?> "; print ""; print ""; print ""; print ""; print ""; print "\n"; } } ?>
訪問時刻 ホスト ブラウザ 参照元URL 訪問ファイル
" . make_date($date) . "". $host . " $agent " . make_link($ref) . " " . $thisfile . "
,