用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$size\n";
  write_to_log($log);
  ?>