用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生成xml简单实例代码
Dec 16 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
php+mysqli批量查询多张表数据的方法
Jan 29 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
PHP中类属性与类静态变量的访问方法示例
Jul 13 PHP
php有效防止图片盗用、盗链的两种方法
Nov 01 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 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四种基本排序算法示例
2015/04/09 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
PHP缓冲区用法总结
2016/02/14 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
Python多线程实例教程
2014/09/06 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
python实现自动更换ip的方法
2015/05/05 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
python 实现表情识别
2020/11/21 Python
社区工作感言
2014/02/21 职场文书
三好学生评语大全
2014/12/29 职场文书
感恩教师节主题班会
2015/08/12 职场文书
医德医风学习心得体会
2016/01/25 职场文书
Python基础之数据结构详解
2021/04/28 Python
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
python脚本框架webpy的url映射详解
2021/11/20 Python
MySQL慢查询优化解决问题
2022/03/17 MySQL
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server