tag . 'start command'); $this->loadSiteIndexInfo(); Log::info($this->tag . 'end command'); } function loadSiteIndexInfo() { $client = new Client(['timeout' => 3.0,]); $top_site_arr = ['.com', '.cn', '.net']; $results = []; $count = 0; $header = ['User-Agent' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16A404 MicroMessenger/6.7.4(0x1607042c) NetType/WIFI Language/zh_CN']; $lastIndex = DB::table($this->table_name)->max('site'); $index = $lastIndex + 1; while ($index <= $lastIndex + 1000) { foreach ($top_site_arr as $item) { try { $request_url = 'https://s' . $index . '.zhangdu520' . $item; $response = $client->request('get', $request_url, [ 'headers' => $header, 'curl' => [ CURLOPT_SSL_VERIFYPEER => false ] ]); $resultCode = $response->getStatusCode(); if ($resultCode == 200 || $resultCode == 302) { $count++; $results[] = ['url' => $request_url, 'site' => $index]; $this->saveToDB($index, $request_url); break; } } catch (\Exception $e) { Log::info($e->getMessage()); } } if ($index % 10000 == 0) print_r($index); $index++; } if ($results && count($results) > 0) { $this->sendEmail($results); } } function saveToDB($site, $url) { $params = [ 'url' => $url, 'site' => $site, 'platform_name' => '掌读', 'created_at' => date("Y-m-d H:i:s"), 'updated_at' => date("Y-m-d H:i:s")]; DB::table($this->table_name)->insert($params); } function sendEmail($results) { Log::info($this->tag . ' start sendEmail'); $to_user = array( ['address' => 'zhangzg@iqiyoo.com', 'name' => '张总'], ['address' => 'zhaojp@yqsd.net', 'name' => '赵君平'], ['address' => 'songdb@iqiyoo.com', 'name' => 'songdb'], ['address' => 'sijj@yqsd.net', 'name' => 'sijj'], ['address' => 'qincp@iqiyoo.com', 'name' => '阿才'], ); $content = ""; $index = 0; foreach ($results as $item) { $index++; $content .= ""; } $content .= "
序号站点id访问的url
{$index}{$item['site']}{$item['url']}
"; SendStatsEmailService::SendHtmlEmailWithAcce($to_user, ['subject' => date("Y-m-d", time()) . "掌读昨天新增站点" . $index . "个", 'body' => $content]); } }