今天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的
这个功能不错
沙发
介个可以有啊 可以用来做做访客调查什么的