用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
PHP脚本的10个技巧(6)
Oct 09 PHP
PHP垃圾回收机制简单说明
Jul 22 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
php中explode的负数limit用法分析
Feb 27 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
PHP设计模式之策略模式原理与用法实例分析
Apr 04 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
PHP操作Redis常用命令的实例详解
Dec 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
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
Python sorted函数详解(高级篇)
2018/09/18 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
认购协议书范本
2014/04/22 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
优秀志愿者感言
2015/08/01 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python