当前位置: 首页 > 图文教程 > 网络编程 > PHP > 用PHP生成自己的LOG文件

PHP
坏狼php学习 计数器实例代码
PHP学习一(基础)
PHP学习 运算符与运算符优先级
PHP学习 mysql
用PHP伪造referer突破网盘禁止外连的代码
php utf-8转unicode的函数
php代码出现错误分析详解
PHP伪静态写法附代码
PHP伪静态页面函数附使用方法
php下汉字转化为拼音的代码
js下函数般调用正则的方法附代码
php 前一天或后一天的日期
php 在线打包_支持子目录
php GD绘制24小时柱状图
php下检测字符串是否是utf8编码的代码
php5中date()得出的时间为什么不是当前时间的解决方法
[原创]效率较高的php下读取文本文件的代码
php文本操作方法集合比较
PHP远程连接MYSQL数据库非常慢的解决方法
PHP写入WRITE编码为UTF8的文件的实现代码

用PHP生成自己的LOG文件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 224 ::
收藏到网摘: n/a


如果你的服务器不容许你读他的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);
?>