欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用PHP生成自己的LOG文件

程序员文章站 2022-10-13 23:32:12
如果你的服务器不容许你读他的log文件,那你只好停下来分析你的访问者?做你自己的log文件吧!你仅需做的事情...

如果你的服务器不容许你读他的log文件,那你只好停下来分析你的访问者?做你自己的log文件吧!
你仅需做的事情是用php计算实际的点击次数,没有错误,没有象'304 not modified' 和 'internal server error' 一样的错误。你的代码将生成自己的log文件。


<?php

/* 用户定义变量 */
$logfile = "clf.log"; /*log文件写到那里 */
$timezone = "+0100"; /* timezone correction */
$lookup_size = true; /* 设置文件的权限 */
$document_root = "/usr/local/apache/share/htdocs";

/* 他可能或不可能对相同的客户端记数
* 一定要对$document_root 这个变量进行设置才可以工作
*/

function write_to_log($str) {
if($fd = @fopen($globals[ "logfile"], "a")) {
fputs($fd, $str);
fclose($fd);
}
}

function get_var($name,$default) {
if($var = getenv($name)) {
return $var;
} else {
return $default;
}
}

if($remote_host = get_var( "remote_host", false)) {
$remote_host = get_var( "remote_addr", "-");
}
$remote_user = get_var( "remote_user", "-");
$remote_ident = get_var( "remote_ident", "-");
$server_port = get_var( "server_port", 80);
if($server_port!=80) {
$server_port = ":" . $server_port;
} else {
$server_port = "";
}
$server_name = get_var( "server_name", "-");
$request_method = get_var( "request_method", "get");
$request_uri = get_var( "request_uri", "");
$user_agent = get_var( "http_user_agent", "");
if($lookup_size == true && $document_root) {
$filename = ereg_replace( "\?.*", "", $request_uri);
$filename = "$document_root$filename";
if(!$size = filesize($filename)) {
$size = 0;
}
} else {
$size = 0;
}

$date = gmdate( "d/m/y:h:i:s");
$log = "$remote_host $remote_ident $remote_user [$date $timezone] \"".
"$request_method http://$server_name$server_port$request_uri\" 200 $size\n";

write_to_log($log);

?>