/** * 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); } } }