function.spider.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3. exit('Access Denied');
  4. }
  5. //记录日志
  6. function spider_add_log($navtitle) {
  7. global $_G;
  8. $spider_id_arr = $_G['cache']['milu_seotool']['config']['spider_id_arr'];
  9. $spider_type = get_spider_type();
  10. if(!$spider_type) return false;
  11. $group_arr = get_page_group();
  12. $set['page_url'] = "http://".$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
  13. $set['spider_type'] = $spider_id_arr[$spider_type];
  14. $set['group_parent_id'] = $group_arr['parent_id'];
  15. $set['group_child_id'] = $group_arr['child_id'];
  16. $set['status'] = $_G['inshowmessage'] ? 1 : 0;
  17. $set['page_title'] = $navtitle;
  18. $set['dateline'] = $_G['timestamp'];
  19. DB::insert('milu_seotool_spider', $set, TRUE);
  20. }
  21. function get_page_group(){
  22. global $_G;
  23. $result_data = array('parent_id' => 0, 'child_id' => 0);
  24. $group_rules_arr = $_G['cache']['milu_seotool']['config']['spider_group_rules'];
  25. if(!$group_rules_arr) return $result_data;
  26. foreach($group_rules_arr as $k => $v){
  27. if($v['rules']['basescript'] != $_G['basescript']) continue;
  28. $result_data['parent_id'] = $k;
  29. if(!$_G['mod']){
  30. $result_data['child_id'] = 1;//1是首页
  31. continue;
  32. }
  33. foreach((array)$v['child'] as $k2 => $v2){
  34. $flag = TRUE;
  35. foreach((array)$v2['rules'] as $k3 => $v3){
  36. if($_G[$k3] != $v3) $flag = FALSE;
  37. }
  38. if(!$v2['rules']) $flag = FALSE;
  39. if($flag) $result_data['child_id'] = $k2;
  40. }
  41. }
  42. return $result_data;
  43. }
  44. //获取爬虫类型
  45. function get_spider_type(){
  46. global $_G;
  47. $spider_type_arr = $_G['cache']['milu_seotool']['config']['spider_type_arr'];
  48. $spider_set = tool_common_get('spider');
  49. $spider_set['spider_type'] = unserialize($spider_set['spider_type']);
  50. $spider_type = strtolower($_SERVER['HTTP_USER_AGENT']);
  51. if(!is_array($spider_type_arr)) return false;
  52. foreach($spider_type_arr as $k => $v){
  53. if (strpos($spider_type, $k) !== false && in_array($k, $spider_set['spider_type'])){
  54. return $k;
  55. }
  56. }
  57. }
  58. //获取用户设定监控的爬虫类型
  59. function get_user_spider_type(){
  60. global $_G;
  61. $spider_type_arr = $_G['cache']['milu_seotool']['config']['spider_type_arr'];
  62. $spider_set = tool_common_get('spider');
  63. $spider_set['spider_type'] = unserialize($spider_set['spider_type']);
  64. $new_spider_arr = array();
  65. foreach($spider_type_arr as $k => $v){
  66. if(in_array($k, $spider_set['spider_type'])) $new_spider_arr[$k] = $v;
  67. }
  68. return $new_spider_arr;
  69. }
  70. ?>