用PHP生成自己的LOG文件


Posted in PHP onOctober 09, 2006

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

?>

PHP 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
Mar 01 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
Nov 18 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
Nov 05 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
php遍历解析xml字符串的方法
May 05 PHP
php中static 静态变量和普通变量的区别
Dec 01 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
VFP与其他应用程序的集成
Oct 09 #PHP
PHP中在数据库中保存Checkbox数据(1)
Oct 09 #PHP
分页显示Oracle数据库记录的类之二
Oct 09 #PHP
分页显示Oracle数据库记录的类之一
Oct 09 #PHP
在线竞拍系统的PHP实现框架(一)
Oct 09 #PHP
用在PHP里的JS打印函数
Oct 09 #PHP
在PHP的图形函数中显示汉字
Oct 09 #PHP
You might like
使用dump函数,给php加断点测试
2013/06/25 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
python写日志封装类实例
2015/06/28 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
Flask之flask-session的具体使用
2018/07/26 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
用Python解数独的方法示例
2019/10/24 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
幼儿园运动会入场词
2014/02/10 职场文书
外联部演讲稿
2014/05/24 职场文书
公司委托书怎么写
2014/08/02 职场文书
领导干部考核评语
2015/01/04 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
python 三边测量定位的实现代码
2021/04/22 Python
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL