Esempio n. 1
0
File: Task.php Progetto: nbaiwan/yav
 public function testAction($id)
 {
     $task = CollectTaskModel::inst()->getTaskById($id);
     if (empty($task)) {
         $this->redirect[] = array('text' => '', 'href' => '/collect/task/index');
         $this->message('采集规则不存在或已被删除', self::MSG_ERROR, true);
     }
     $collect_list_urls = CollectTaskModel::getListUrls($task['collect_task_urls']);
     if ($collect_list_urls) {
         $collect_content_urls = CollectTaskModel::getContentUrls($collect_list_urls[0], $task['collect_list_rules']['begin'], $task['collect_list_rules']['end']);
         // 如果采集内容地址不为空,则采集内容
         if ($collect_content_urls) {
             $collect_content_charset = 'utf-8';
             $collect_content_body = CollectTaskModel::getUrlContents($collect_content_urls[0], $collect_content_charset);
             if (strtolower($collect_content_charset) != 'utf-8') {
                 $collect_content_body = mb_convert_encoding($collect_content_body, 'UTF-8', $collect_content_charset);
             }
             $task['collect_content_data'] = array();
             foreach ($task['collect_content_rules'] as $_k => $_v) {
                 if ($_v['begin'] && $_v['end']) {
                     preg_match("/{$_v['begin']}(.+?){$_v['end']}/s", $collect_content_body, $_r);
                     $task['collect_content_data'][] = array('subject' => $task['collect_content_rules'][$_k]['collect_fields_name'], 'content' => $_r[0]);
                 }
             }
             $task['collect_list_urls'] = $collect_list_urls;
             $task['collect_content_urls'] = $collect_content_urls;
             $this->render('test', array('task' => $task));
         }
     }
 }