用PHP生成自己的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 $sizen"; 

write_to_log($log); 

?>