为 WordPress 生成网站访问日志

46

对于一个网站来说,分析站点访问日志是非常重要的一件事。但是经常去服务器后台查询网站的访问日志太麻烦,而且很多vps都不带有访问日志这个功能。在这里周良给大家分享一个小技巧,可以为 WordPress 生成网站访问日志,日志内容还是可以自定义的,这样就可以省去每次都要登录主机后台查询。

把下面的代码添加到主题的 function.php 文件中即可:
[cce_php]
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;
}
[/cce_php]

ok,在你的站点根目录上就会生成 mylogs.txt 这个文件,通过 http://www.aips.me/mylogs.txt 可以直接访问。这样生成的网站日志会比 CNZZ 等第三方统计工具生成的日志精准的多,你可以通过日志得知哪些人访问哪些文件,哪些蜘蛛爬行过了等等信息。

如果你有设计或者 WordPress 方面的项目需求,可以和我联系 Email:wwwzhouliang@gmail.com。

作者主页 邮箱 微博 腾讯微博 QQ Twitter Facebook Google+

共 46 条评论

  1. 超级玛丽 回复

    网站换主题啦,很清爽简洁

    1. 周良 (文章作者) 回复

      嗯,现在这个主题,比较利于读者阅读

  2. Louis Han 回复

    会不会增加function运行的负担啊

    1. 周良 (文章作者) 回复

      这个用了的话肯定是会出现这个问题的。

  3. Louis Han 回复

    会不会增加function运行的负担啊

    1. 周良 (文章作者) 回复

      这个用了的话肯定是会出现这个问题的。

  4. 五月里徜徉的小猫咪 回复

    不要用PHP去做这个日志,应该用nginx生成的access.log然后配合软件进行分割,分析

    1. 周良 (文章作者) 回复

      这个方法不错

  5. 五月里徜徉的小猫咪 回复

    不要用PHP去做这个日志,应该用nginx生成的access.log然后配合软件进行分割,分析

    1. 周良 (文章作者) 回复

      这个方法不错

  6. 好笑网 回复

    来看看

  7. 好笑网 回复

    来看看

  8. 陌小雨 回复

    怎么看不到博主的呢?

    1. 周良的博客 (文章作者) 回复

      什么

      1. 陌小雨 回复

        http://www.aips.me/mylogs.txt,这个

        1. 周良的博客 (文章作者) 回复

          这东西就不放出来了

Leave a Reply

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 Required fields are marked *

返回顶部