Esempio n. 1
0
 /**
  * go forward one by one
  * @param $_tagArr
  */
 private function roundTagA(&$_tagArr)
 {
     if ($_tagArr == NULL) {
         return;
     }
     $_tagArrLength = count($_tagArr);
     for ($i = 0; $i < $_tagArrLength; $i++) {
         if (is_array($_tagArr[$i])) {
             $this->roundTagA($_tagArr[$i]);
         } else {
             if (stripos($_tagArr[$i], self::$_CapSite['domain_name']) === FALSE) {
                 continue;
             }
             if (in_array($_tagArr[$i], self::$_overURL)) {
                 continue;
             }
             self::$_overURL[] = $_tagArr[$i];
             if (count(self::$_overURL) % self::$_CapSite['serialize_url_size'] == 0) {
                 OperateFile::setText(self::$_Config['overURL'], serialize(self::$_overURL));
             }
             do {
                 $_tagA = $this->getCapInstance(Http::get($_tagArr[$i]));
                 sleep(self::$_CapSite['preform_page_time'] * self::$_markTime);
                 if ($this->_mark === TRUE) {
                     self::$_markTime = self::$_CapSite['preform_page_time'];
                     break;
                 }
                 self::$_markTime *= 2;
             } while (true);
             /* parse the main page and return next page */
             $this->roundTagA($_tagA);
         }
     }
 }