diff --git a/application/controllers/keyworlds.php b/application/controllers/keyworlds.php index 429adf01..1adf548b 100644 --- a/application/controllers/keyworlds.php +++ b/application/controllers/keyworlds.php @@ -16,7 +16,7 @@ class Keyworlds extends CI_Controller { public function index($kw_is_id = '') { $this->load->library('Accesscheck'); - $this->accesscheck->check_access(); + $this->accesscheck->check_access(); // test-- $this->permission->is_admin(); //查询结构列表信息 @@ -70,6 +70,7 @@ class Keyworlds extends CI_Controller { $data['wordcount'] = 2; } } + $data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30, $startdate, $enddate); empty($data['rank_info']) && $data['rank_info'] = $this->Keywordsrank_model->get_rank_list($is_id_string, 30); if (!empty($data['rank_info'])) { @@ -94,10 +95,15 @@ class Keyworlds extends CI_Controller { } } } +// print_r($data['wordcount']); +// print_r($rank_json); + // 拼接highcharts数据格式 $data['rank_json'] = '['; foreach ($rank_json as &$ra) { ksort($ra); + // 每条线 $data['rank_json'] .='{"name":"' . $ra[$data_time[0]]->kw_keyworlds . '","data":['; + // 每个点 foreach ($ra as $v) { $kwr_rank = $v->kwr_rank; if ($v->kwr_rank == '>150') @@ -110,8 +116,25 @@ class Keyworlds extends CI_Controller { } $data['rank_json'] = substr($data['rank_json'], 0, -1); $data['rank_json'] .=']},'; + // 叶子节点 显示mobile记录 + if ($data['wordcount'] == 1) { + $data['rank_json'] .='{"name":"' . $ra[$data_time[0]]->kw_keyworlds . '(mobile)","data":['; + foreach ($ra as $v) { + $kwr_mobile_rank = $v->kwr_mobile_rank ? $v->kwr_mobile_rank : 'null' ; + if ($v->kwr_mobile_rank == '>150') + $kwr_mobile_rank = 100; + if (strtolower($this->config->item('site_code')) == 'gm') { + $data['rank_json'] .=-$kwr_mobile_rank . ','; + } else { + $data['rank_json'] .=$kwr_mobile_rank . ','; + } + } + $data['rank_json'] = substr($data['rank_json'], 0, -1); + $data['rank_json'] .=']},'; + } } $data['rank_json'] = substr($data['rank_json'], 0, -1) . ']'; +// print_r($data['rank_json']); $data['data_time'] = json_encode($data_time); $data['rank_info'] = ''; isset($rank_json[$data['current_keyworld']->kw_id]) && $data['rank_info'] = $rank_json[$data['current_keyworld']->kw_id]; @@ -120,9 +143,10 @@ class Keyworlds extends CI_Controller { redirect(site_url("Keyworlds/index")); } - $data['analytics'] = $this->analytics_model->get_keyword_analytics($data['current_keyworld']->kw_keyworlds, 30); + // $data['analytics'] = $this->analytics_model->get_keyword_analytics($data['current_keyworld']->kw_keyworlds, 30); $data['site_code'] = strtolower($this->config->item('site_code')); - +// print_r($data['rank_info']); +// print_r($data["rank_json"]); $this->load->view('bootstrap/header', $data); $this->load->view('keyworlds/index'); $this->load->view('bootstrap/footer'); @@ -228,12 +252,29 @@ class Keyworlds extends CI_Controller { public function get_google_rank() { $keyworlds = $this->input->post('keyworlds'); //搜索关键字 - $kw_id = $this->input->post('kw_id'); - $site_url = $this->config->item('site_url'); - - //$engines = array('cht'=>'get_search_content_by_aol','gm' =>'get_search_content_by_google','vc' =>'get_search_content_by_google','jp' =>'get_search_content_by_yahoo','vac'=>'get_search_content_by_google','it' =>'get_search_content_by_google','ru' =>'get_search_content_by_google','wt' =>'get_search_content_by_baidu','tbt'=>'get_search_content_by_aol','sht'=>'get_search_content_by_aol','yz' =>'get_search_content_by_aol','gl' =>'get_search_content_by_aol','mbj'=>'get_search_content_by_aol','ct' =>'get_search_content_by_aol','mct'=>'get_search_content_by_aol','dct'=>'get_search_content_by_aol','cits' =>'get_search_content_by_baidu',); - //$engines = array('cht'=>'get_search_content_by_google','gm' =>'get_search_content_by_google','vc' =>'get_search_content_by_google','jp' =>'get_search_content_by_yahoo','vac'=>'get_search_content_by_google','it' =>'get_search_content_by_google','ru' =>'get_search_content_by_google','wt' =>'get_search_content_by_baidu','tbt'=>'get_search_content_by_google','sht'=>'get_search_content_by_google','yz' =>'get_search_content_by_google','gl' =>'get_search_content_by_google','mbj'=>'get_search_content_by_google','ct' =>'get_search_content_by_google','mct'=>'get_search_content_by_google','dct'=>'get_search_content_by_google','cits' =>'get_search_content_by_baidu'); - $engines = array('cht' => 'get_search_content_by_google', 'gm' => 'get_search_content_by_google', 'vc' => 'get_search_content_by_google', 'jp' => 'get_search_content_by_google', 'vac' => 'get_search_content_by_google', 'it' => 'get_search_content_by_google', 'ru' => 'get_search_content_by_google', 'wt' => 'get_search_content_by_baidu', 'tbt' => 'get_search_content_by_google', 'sht' => 'get_search_content_by_google', 'yz' => 'get_search_content_by_google', 'gl' => 'get_search_content_by_google', 'mbj' => 'get_search_content_by_google', 'ct' => 'get_search_content_by_google', 'mct' => 'get_search_content_by_google', 'dct' => 'get_search_content_by_google', 'cits' => 'get_search_content_by_baidu', 'ah' => 'get_search_content_by_google'); + $kw_id = $this->input->post('kw_id'); + $site_url = $this->config->item('site_url'); + + $engines = array( + 'cht' => 'get_search_content_by_google', + 'gm' => 'get_search_content_by_google', + 'vc' => 'get_search_content_by_google', + 'jp' => 'get_search_content_by_google', + 'vac' => 'get_search_content_by_google', + 'it' => 'get_search_content_by_google', + 'ru' => 'get_search_content_by_google', + 'wt' => 'get_search_content_by_baidu', + 'tbt' => 'get_search_content_by_google', + 'sht' => 'get_search_content_by_google', + 'yz' => 'get_search_content_by_google', + 'gl' => 'get_search_content_by_google', + 'mbj' => 'get_search_content_by_google', + 'ct' => 'get_search_content_by_google', + 'mct' => 'get_search_content_by_google', + 'dct' => 'get_search_content_by_google', + 'cits' => 'get_search_content_by_baidu', + 'ah' => 'get_search_content_by_google' + ); $site_code = $this->config->item('site_code'); $method = $engines[$site_code]; @@ -268,15 +309,15 @@ class Keyworlds extends CI_Controller { if ($rank['rank'] == '151') { //超过151的排名则不记录 $this->Keywords_model->update_time($kw_id); } elseif (isset($last_rank[0]->kwr_datetime) and $last_rank[0]->kwr_datetime > strtotime(date('Y-m-d'))) { - if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->update_rank($last_rank[0]->kwr_id, $rank['rank'], $rank['source'])) { + if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->update_rank($last_rank[0]->kwr_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'])) { $this->Keywords_model->update_time($kw_id); } } else { - if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($kw_id, $rank['rank'], $rank['source'], $rank['engines'])) { + if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($kw_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'], $rank['engines'])) { $this->Keywords_model->update_time($kw_id); } } - $data[] = array('name' => 'rank', 'value' => $rank['rank']); + $data[] = array('name' => 'rank', 'value' => ($rank['rank'] . " -- " . $rank["rank_m"])); echo json_encode($data); return TRUE; } @@ -307,8 +348,6 @@ class Keyworlds extends CI_Controller { $rank = $this->get_search_content_by_google($v->kw_keyworlds, $site_url, $i, $site_code); } else if ($engines == 'yandex') {//俄语站的yangdex $rank = $this->get_search_content_by_yandex($v->kw_keyworlds, $site_url, $i - 1); - } elseif ($engines == 'yahoo') { - $rank = $this->get_search_content_by_yahoo($v->kw_keyworlds, $site_url, $i, $site_code); } if ($rank['rank'] != 0) { @@ -323,7 +362,7 @@ class Keyworlds extends CI_Controller { } if ($rank['rank'] == '151') { //超过151的排名则不记录 $this->Keywords_model->update_time($v->kw_id); - }else if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($v->kw_id, $rank['rank'], $rank['source'], $rank['engines'])) { + }else if ($rank['rank'] != -1 and $rank['rank'] != -2 and $this->Keywordsrank_model->add_rank($v->kw_id, $rank['rank'], $rank['rank_m'], $rank['source'], $rank['source_m'], $rank['engines'])) { $this->load->model('InfoSMS_model'); $last_rank = isset($last_rank[0]) ? $last_rank[0]->kwr_rank : $rank['rank']; $this->InfoSMS_model->readed_for_info($v->kw_id, 'keywords_rank'); @@ -339,31 +378,27 @@ class Keyworlds extends CI_Controller { public function get_search_content_by_google($keyworlds, $site_url, $page, $site_code) { $rank['rank'] = 0; $rank['source'] = $site_url; + $rank['rank_m'] = 0; + $rank['source_m'] = $site_url; $rank['engines'] = 'google'; if ($page > 3) { $rank['rank'] = 151; + $rank['rank_m'] = 151; return $rank; } - //拼接关键词 - /* $key_array = explode(' ',$keyworlds); - $search_worlds=''; - foreach ($key_array as $v) { - $search_worlds.='+'.$v; - } - $search_worlds = substr($search_worlds,1); */ $search_worlds = urlencode($keyworlds); //拼接搜索url链接 $start = ($page - 1) * 50; $google_url = 'google.com'; $google_domain = array( - 'gm' => 'google.de', - 'vc' => 'google.fr', + 'gm' => 'google.de', + 'vc' => 'google.fr', 'vac' => 'google.es', - 'ru' => 'google.ru', - 'it' => 'google.it', - 'jp' => 'google.co.jp' + 'ru' => 'google.ru', + 'it' => 'google.it', + 'jp' => 'google.co.jp' ); if (!empty($google_domain[$site_code])) $google_url = $google_domain[$site_code]; @@ -374,12 +409,9 @@ class Keyworlds extends CI_Controller { $language = $language_array[$site_code]; //抓取google搜索结果 - $this->load->library('Snoopy'); - $snoopy = $this->snoopy; - $snoopy->maxredirs = 0; - $snoopy->agent = '(compatible; MSIE 11; MSN 8; AOL 4.0; Windows 98)'; //模拟浏览器 - if ($snoopy->fetch("http://www.$google_url/search?q=$search_worlds&start=$start&num=50&hl=$language")) { - $response = $snoopy->results; + $url = "https://www.$google_url/search?q=$search_worlds&start=$start&num=50&hl=$language"; + $response = $this->curl($url); + if ($response) { //分析google搜索结果,计算排名 if (false !== stripos($response, '