示例#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);
         }
     }
 }
示例#2
0
 /**
  * save image associating with specified image source
  * @param $_image_src
  * @param $_file_name
  */
 private function grabImage($_image_src, $_file_name = NULL)
 {
     $_final_name = NULL;
     $_ext = NULL;
     if ($_image_src == NULL) {
         return NULL;
     }
     $_final_name = strtolower(end(explode('/', $_image_src)));
     if ($_file_name === NULL) {
         /* 'Img'.date( "YmdHis" ).'.'.$_ext */
         $_file_name = $_final_name;
     }
     if (in_array($_file_name, self::$_accompImg)) {
         return NULL;
     }
     $_ext = strtolower(end(explode('.', $_image_src)));
     if (!in_array($_ext, self::$_imgAccept)) {
         return FALSE;
     }
     if (!is_dir(self::$_savePath)) {
         mkdir(self::$_savePath, 0777);
     }
     if (!is_readable(self::$_savePath)) {
         chmod(self::$_savePath, 0777);
     }
     $_Length = count(self::$_accompImg);
     $_prefix = isset(self::$_CapSite['partition_name']) ? self::$_CapSite['partition_name'] : '';
     $_dir = self::$_savePath . $_prefix . intval($_Length / self::$_CapSite['dir_file_limit']) . DIRECTORY_SEPARATOR;
     if (file_exists($_dir) === FALSE) {
         mkdir($_dir, 0777);
     }
     $_file_path = $_dir . $_file_name;
     $this->_mark = FALSE;
     ob_start();
     readfile($_image_src);
     $_img = ob_get_contents();
     ob_end_clean();
     $_size = strlen($_img);
     /**
      * equals:
      * 	 $_fp = fopen( $_file_path, 'wb' );
      *   $_return_size = fwrite( $_fp, $_img, $_size );
      *   fclose( $_fp );
      */
     $_return_size = OperateFile::setText($_file_path, $_img);
     if ($_return_size === $_size) {
         $this->_mark = TRUE;
     }
     self::$_accompImg[] = $_file_name;
     if (count(self::$_accompImg) % self::$_CapSite['serialize_img_size'] == 0) {
         OperateFile::setText(self::$_Config['accompImg'], serialize(self::$_accompImg));
     }
     return $_file_path;
 }