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