假如你的服務器不容許你讀他的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);
- ?>
新聞熱點
疑難解答