用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发电子邮件
Oct 09 PHP
xajax写的留言本
Nov 25 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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数组查找函数总结
2014/11/18 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
package.json文件配置详解
2017/06/15 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
Python随机读取文件实现实例
2017/05/25 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
python如何删除文件、目录
2020/06/23 Python
python re模块和正则表达式
2021/03/24 Python
应届生煤化工求职信
2013/10/21 职场文书
教师党员思想汇报
2014/01/06 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
公司承诺书范文
2014/05/19 职场文书
525心理活动总结
2014/07/04 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
文体活动总结
2015/02/04 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
特此通知格式
2015/04/27 职场文书
2015年教师节感言
2015/08/03 职场文书
python文件目录操作之os模块
2021/05/08 Python
MySQL系列之十二 备份与恢复
2021/07/02 MySQL
MySQL批量更新不同表中的数据
2022/05/11 MySQL