用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 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
PHP简单系统查询模块代码打包下载
Jun 07 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
php中实现精确设置session过期时间的方法
Jul 17 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 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
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
html中table数据排序的js代码
2011/08/09 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
Python 异常处理实例详解
2014/03/12 Python
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
Python箱型图处理离群点的例子
2019/12/09 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
django的autoreload机制实现
2020/06/03 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
详解python内置模块urllib
2020/09/09 Python
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
区优秀教师事迹材料
2014/02/10 职场文书
求职自我推荐信
2015/03/24 职场文书
信用卡催款律师函
2015/05/27 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang