用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 相关文章推荐
笑谈配置,使用Smarty技术
Jan 04 PHP
PHP令牌 Token改进版
Jul 18 PHP
php实现的ping端口函数实例
Nov 12 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
PHP文件与目录操作示例
Dec 24 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
php工具型代码之印章抠图
Jul 18 PHP
thinkPHP框架实现的简单计算器示例
Dec 07 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 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验证码类分享
2014/11/18 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
python sorted函数原理解析及练习
2020/02/10 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
鲜花方阵解说词
2014/02/13 职场文书
2014国培学习感言
2014/03/05 职场文书
法人代表授权委托书
2014/04/08 职场文书
奶茶店创业计划书
2014/08/14 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
领导干部考核评语
2015/01/04 职场文书
入学证明
2015/06/23 职场文书
《法国号》教学反思
2016/02/22 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS