今天tiandi分享一则wordpress技巧,让wordpress自己生成网站访问日志,日志内容可以自己定义,大致可以和主机供应商后台查询的日志差不多,这样就可以省去每次都要登录主机后台查询。
开打主题下的function,插入以下代码:
make_log_file(); function make_log_file(){ //log文件名 $filename = 'mylogs.txt'; //去除rc-ajax评论以及cron机制访问记录 if(strstr($_SERVER["REQUEST_URI"],"rc-ajax")== false && strstr($_SERVER["REQUEST_URI"],"wp-cron.php")== false ) { $word .= date('mdHis',$_SERVER['REQUEST_TIME'] + 3600*8) . " "; //访问页面 $word .= $_SERVER["REQUEST_URI"] ." "; //协议 $word .= $_SERVER['SERVER_PROTOCOL'] ." "; //方法,POST OR GET $word .= $_SERVER['REQUEST_METHOD'] . " "; //$word .= $_SERVER['HTTP_ACCEPT'] . " "; //获得浏览器信息 $word .= getbrowser(). " "; //传递参数 $word .= "[". $_SERVER['QUERY_STRING'] . "] "; //跳转地址 $word .= $_SERVER['HTTP_REFERER'] . " "; //获取IP $word .= getIP() . " "; $word .= "\n"; $fh = fopen($filename, "a"); fwrite($fh, $word); fclose($fh); } } //获取IP地址,网上现成代码 function getIP() //get ip address { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } else if (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } else if (getenv('REMOTE_ADDR')) { $ip = getenv('REMOTE_ADDR'); } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } //获取浏览器信息,移动端,平板电脑数据还未加上。 function getbrowser() { $Agent = $_SERVER['HTTP_USER_AGENT']; $browser = ''; $browserver = ''; if(ereg('Mozilla', $Agent) && ereg('Chrome', $Agent)) { $temp = explode('(', $Agent); $Part = $temp[2]; $temp = explode('/', $Part); $browserver = $temp[1]; $temp = explode(' ', $browserver); $browserver = $temp[0]; $browserver = $browserver; $browser = 'Chrome'; } if(ereg('Mozilla', $Agent) && ereg('Firefox', $Agent)) { $temp = explode('(', $Agent); $Part = $temp[1]; $temp = explode('/', $Part); $browserver = $temp[2]; $temp = explode(' ', $browserver); $browserver = $temp[0]; $browserver = $browserver; $browser = 'Firefox'; } if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent)) { $temp = explode('(', $Agent); $Part = $temp[1]; $temp = explode(')', $Part); $browserver = $temp[1]; $temp = explode(' ', $browserver); $browserver = $temp[2]; $browserver = $browserver; $browser = 'Opera'; } if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)) { $temp = explode('(', $Agent); $Part = $temp[1]; $temp = explode(';', $Part); $Part = $temp[1]; $temp = explode(' ', $Part); $browserver = $temp[2]; $browserver = $browserver; $browser = 'Internet Explorer'; } if($browser != '') { $browseinfo = $browser.' '.$browserver; } else { $browseinfo = $_SERVER['HTTP_USER_AGENT']; } return $browseinfo; }
这样,在你的站点根目录上就会生成mylogs.txt文件,你通过http://你的域名/mylogs.txt可以直接访问。比如像千丝海阁的mylogs.txt,这样的日志要比chinaz这种统计工具生成的日志精准的多,你可以通过日志得知哪些人访问哪些文件,哪些蜘蛛爬行过了等等信息。
文章评分2次,平均分5.0:★★★★★
值得参考哦。
我感觉你这个可读性比Apache的log还差
太需要了
嘿,刚好要弄~~~谢谢~
好高兴啊!麦葱酱又来打开了![2013年8月9日下午2:34:16]
这段代码是放在functions.php的哪个位置?我刚试了下放在最后,结果乱码
function下任意位置都行啊。 乱码是什么个意思?
意思就是这段代码在网站头部出现了,占据了首屏位置,⊙﹏⊙b汗
本来就小水管,要看还是到服务器下载下来
能把TXT。优化成html最好,更直观的看
看起来很不错 不知道会不会吃资源?
代码还可以完善下啊 直接再生成一个蜘蛛爬行数据页面
这是第一步,下一步就是要做蜘蛛爬行分析页面。
这是apache的, 不知 Nginx 能否获取呢?
这个服务器端是啥没关系,PHP代码应用而已。
阿帕奇自带日志啊
是啊,但不知道怎么直接从网站上可以调用显示/logs下的gz,所以只能折腾这个出来。
看这日志头大,不如直接用个百度统计算了
这个不错。再进行筛选下,不过你的日志貌似不支持中文字符。
太麻烦了 我也是it的
这个功能不错
沙发
介个可以有啊 可以用来做做访客调查什么的