为 WordPress 生成网站访问日志

林继 WordPress 1,136 共写了340个字 (2014-03-22 0:35:30) 没有评论 打印 扫描二维码 百度未收录

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

  把下面的代码添加到主题的 function.php 文件中即可:

  1. make_log_file();
  2. function make_log_file(){
  3. //log文件名
  4. $filename = 'mylogs.txt';
  5. //去除rc-ajax评论以及cron机制访问记录
  6. if(strstr($_SERVER["REQUEST_URI"],"rc-ajax")== false
  7. && strstr($_SERVER["REQUEST_URI"],"wp-cron.php")== false ) {
  8. $word .= date('Y-m-d H:i:s',$_SERVER['REQUEST_TIME'] + 3600*8) . " ";
  9. //访问页面
  10. $word .= $_SERVER["REQUEST_URI"] ." ";
  11. //协议
  12. $word .= $_SERVER['SERVER_PROTOCOL'] ." ";
  13. //方法,POST OR GET
  14. $word .= $_SERVER['REQUEST_METHOD'] . " ";
  15. //$word .= $_SERVER['HTTP_ACCEPT'] . " ";
  16. //获得浏览器信息
  17. $word .= getbrowser(). " ";
  18. //传递参数
  19. $word .= "[". $_SERVER['QUERY_STRING'] . "] ";
  20. //跳转地址
  21. $word .= $_SERVER['HTTP_REFERER'] . " ";
  22. //获取IP
  23. $word .= getIP() . " ";
  24. $word .= "\n";
  25. $fh = fopen($filename, "a");
  26. fwrite($fh, $word);
  27. fclose($fh);
  28. }
  29. }
  30. //获取IP地址,网上现成代码
  31. function getIP() //get ip address
  32. {
  33. if (getenv('HTTP_CLIENT_IP'))
  34. {
  35. $ip = getenv('HTTP_CLIENT_IP');
  36. }
  37. else if (getenv('HTTP_X_FORWARDED_FOR'))
  38. {
  39. $ip = getenv('HTTP_X_FORWARDED_FOR');
  40. }
  41. else if (getenv('REMOTE_ADDR'))
  42. {
  43. $ip = getenv('REMOTE_ADDR');
  44. }
  45. else
  46. {
  47. $ip = $_SERVER['REMOTE_ADDR'];
  48. }
  49. return $ip;
  50. }
  51. //获取浏览器信息,移动端,平板电脑数据还未加上。
  52. function getbrowser()
  53. {
  54. $Agent = $_SERVER['HTTP_USER_AGENT'];
  55. $browser = '';
  56. $browserver = '';
  57.  
  58. if(ereg('Mozilla', $Agent) && ereg('Chrome', $Agent))
  59. {
  60. $temp = explode('(', $Agent);
  61. $Part = $temp[2];
  62. $temp = explode('/', $Part);
  63. $browserver = $temp[1];
  64. $temp = explode(' ', $browserver);
  65. $browserver = $temp[0];
  66. $browserver = $browserver;
  67. $browser = 'Chrome';
  68. }
  69. if(ereg('Mozilla', $Agent) && ereg('Firefox', $Agent))
  70. {
  71. $temp = explode('(', $Agent);
  72. $Part = $temp[1];
  73. $temp = explode('/', $Part);
  74. $browserver = $temp[2];
  75. $temp = explode(' ', $browserver);
  76. $browserver = $temp[0];
  77. $browserver = $browserver;
  78. $browser = 'Firefox';
  79. }
  80. if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent))
  81. {
  82. $temp = explode('(', $Agent);
  83. $Part = $temp[1];
  84. $temp = explode(')', $Part);
  85. $browserver = $temp[1];
  86. $temp = explode(' ', $browserver);
  87. $browserver = $temp[2];
  88. $browserver = $browserver;
  89. $browser = 'Opera';
  90. }
  91. if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent))
  92. {
  93. $temp = explode('(', $Agent);
  94. $Part = $temp[1];
  95. $temp = explode(';', $Part);
  96. $Part = $temp[1];
  97. $temp = explode(' ', $Part);
  98. $browserver = $temp[2];
  99. $browserver = $browserver;
  100. $browser = 'Internet Explorer';
  101. }
  102. if($browser != '')
  103. {
  104. $browseinfo = $browser.' '.$browserver;
  105. }
  106. else
  107. {
  108. $browseinfo = $_SERVER['HTTP_USER_AGENT'];
  109. }
  110. return $browseinfo;
  111. }

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

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >