用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 相关文章推荐
mysql+php分页类(已测)
Mar 31 PHP
php 远程关机操作的代码
Dec 05 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
二进制交叉权限微型php类分享
Feb 07 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
PHP中预定义的6种接口介绍
May 12 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
PHP PDOStatement::fetchAll讲解
Jan 31 PHP
php如何实现数据库的备份和恢复
Nov 30 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
php简单日历函数
2015/10/28 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
图片按比例缩放函数
2006/06/26 Javascript
一页面多XMLHttpRequest对象
2007/01/22 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
python监控进程脚本
2018/04/12 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
django项目搭建与Session使用详解
2018/10/10 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
django之自定义软删除Model的方法
2019/08/14 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
乡镇精神文明建设汇报材料
2014/08/15 职场文书
Nginx 常用配置
2022/05/15 Servers