程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用PHP生成自己的LOG文件

用PHP生成自己的LOG文件

編輯:關於PHP編程


如果你的服務器不容許你讀他的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);

?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved