用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 相关文章推荐
Ajax+PHP快速上手及简单应用说明
Jul 24 PHP
php创建sprite
Feb 11 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php中explode函数用法分析
Nov 15 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
zend framework重定向方法小结
May 28 PHP
php设计模式之单例模式代码
Jun 11 PHP
php 常用的系统函数
Feb 07 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
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
js的回调函数详解
2015/01/05 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
python函数形参用法实例分析
2015/08/04 Python
python利用微信公众号实现报警功能
2018/06/10 Python
学习python可以干什么
2019/02/26 Python
Python实现上下文管理器的方法
2020/08/07 Python
python3实现简单飞机大战
2020/11/29 Python
python 操作excel表格的方法
2020/12/05 Python
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
小组合作学习反思
2014/02/18 职场文书
实习评语大全
2014/04/26 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书