示例#1
0
 public function scanSites($sites, $sendMail = false)
 {
     ini_set('display_errors', 0);
     $mdlLogs = new Application_Model_Logs();
     $urlsStatus = array();
     foreach ($sites as $site) {
         $arr = array();
         $status = 0;
         if (!empty($site['url'])) {
             $response = $this->curlResponse($site['url']);
             $arr = $response;
             //$this->get_headers_from_curl_response($response);
             $parseRedirect = $this->parseRedirect($arr);
             if ($parseRedirect) {
                 $this->update(array('url' => $parseRedirect), 'id_site = ' . (int) $site['id_site']);
             }
             if ($arr['http_code']) {
                 /*
                                         $arrCode = explode(' ', $arr['http_code']);
                                         if ($arrCode[1]) {
                                             $status = $arrCode[1];
                                         }
                                     } else {
                                         $status = 0;*/
                 $status = $arr['http_code'];
             }
             $status = $arr['http_code'];
             $id_log = $mdlLogs->insert(array('id_site' => $site['id_site'], "status" => $status));
             $urlsStatus[] = array('id_site' => $site['id_site'], "name" => $site['name'], "url" => $site['url'], "status" => $status);
             if ($sendMail) {
                 $lastLog = $mdlLogs->getLastLogSite($site['id_site']);
                 if ((int) $status !== (int) $lastLog[0]['status'] && $mm) {
                     $message = "<p>Статус сайта изменился, новый статус" . "{$status}, старый {$lastLog[0]['status']}</p>";
                     $mm = false;
                     $mdlLogs->sendEmail($message);
                 }
             }
         }
     }
     return $urlsStatus;
 }