用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 相关文章推荐
使用adodb lite解决问题
Dec 31 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 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
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
javascript模块化简单解析
2016/04/07 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
python类和函数中使用静态变量的方法
2015/05/09 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python实现的质因式分解算法示例
2018/05/03 Python
python实现跨excel的工作表sheet之间的复制方法
2018/05/03 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python读写csv文件方法详细总结
2019/07/05 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
linux面试题参考答案(8)
2016/04/19 面试题
施工资料员岗位职责
2014/01/06 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
亮剑观后感
2015/06/05 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python