用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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
在数据量大(超过10万)的情况下
Jan 15 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
php集成动态口令认证
Jul 21 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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实现多条件查询实例代码
2010/07/17 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
python中pycurl库的用法实例
2014/09/30 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
简述Python2与Python3的不同点
2018/01/21 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
python 格式化输出百分号的方法
2019/01/20 Python
python 调用钉钉机器人的方法
2019/02/20 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
门诊挂号室室长岗位职责
2013/11/27 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
中学教师培训制度
2014/01/31 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
小学数学课题方案
2014/06/15 职场文书
会议通知范文
2015/04/15 职场文书
贫困生证明范文
2015/06/16 职场文书
2015最新民情日记范文
2015/06/26 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
MySQL数据库简介与基本操作
2022/05/30 MySQL