假如你的服务器不容许你读他的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_methodhttp: //$server_name$server_port$request_uri" 200 $sizen"; write_to_log($log);
本文地址:
转载随意,但请附上文章地址:-)