用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 相关文章推荐
PHP编程中八种常见的文件操作方式
Nov 19 PHP
php array_intersect()函数使用代码
Jan 14 PHP
使用PHP计算两个路径的相对路径
Jun 14 PHP
PHP 文件编程综合案例-文件上传的实现
Jul 03 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
PHP中返回引用类型的方法
Apr 03 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
php实现头像上传预览功能
Apr 27 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
PHP实现git部署的方法教程
Dec 19 PHP
在php的yii2框架中整合hbase库的方法
Sep 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
开发大型PHP项目的方法
2006/10/09 PHP
php 在线打包_支持子目录
2008/06/28 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
PHP处理会话函数大总结
2015/08/05 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
python 2.7.14安装图文教程
2018/04/08 Python
python 遍历pd.Series的index和value
2019/11/26 Python
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
计算机毕业生自荐信范文
2014/03/23 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL