where('rid', 6)->select()->toArray(); $posts = Db::table('recruit_post')->column('code,name', 'id'); $recruits = Db::table('recruit')->column('name', 'id'); $families_data = Db::table('recruit_family')->select()->toArray(); $families = []; foreach ($families_data as $v) { if (empty($families[$v['eid']])) { $families[$v['eid']] = ''; } if (!empty($v['appellation'])) { $families[$v['eid']] .= $v['appellation'] . '-' . $v['realname'] . '-' . date('Y-m-d', $v['birthday']) . '-' . $v['political_attitudes'] . '-' . $v['work'] . ';'; } } foreach ($data as &$v) { $v['post_code'] = $posts[$v['post_id']]['code']; $v['post_name'] = $posts[$v['post_id']]['name']; $v['recruits_name'] = $recruits[$v['rid']]; $v['family'] = empty($families[$v['id']]) ? '' : $families[$v['id']]; $v['birthday'] = empty($v['birthday']) ? '' : date('Y-m-d', $v['birthday']); $v['status_text'] = $v['status'] == 1 ? '审核中或报名成功' : '暂存或审核失败'; $v['word_url'] = empty($v['word_url']) ? '' : 'http://www.jucai.gov.cn' . $v['word_url']; $v['front_card'] = $this->_dealImage($v['front_card']); $v['back_card'] = $this->_dealImage($v['back_card']); $v['diploma_img'] = $this->_dealImage($v['diploma_img']); $v['degree_img'] = $this->_dealImage($v['degree_img']); $v['xuexin_img'] = $this->_dealImage($v['xuexin_img']); $v['work_pro_img'] = $this->_dealImage($v['work_pro_img']); $v['work_approve'] = $this->_dealImage($v['work_approve']); unset($v); } $this->assign('data', $data); return $this->fetch(); } private function _dealImage($image) { $arr = explode(',', $image); $res = []; foreach ($arr as $v) { if (strpos($v, 'blob:') === false) { $res[] = $v; } } if (empty($res)) { return ''; } else { return implode('

', $res); } } public function t1() { $table = QueryList::get('http://rcyz.qxrc.com/index.php?g=portal&m=index&a=site_list')->find('table'); // 采集表的每行内容 $tableRows = $table->find('tr:gt(0)')->map(function ($row) { $arr = []; $arr['title'] = $row->find('td:eq(2) a')->text(); $arr['href'] = 'http://rcyz.qxrc.com' . $row->find('td:eq(2) a')->attr('href'); $arr['id'] = str_replace('http://rcyz.qxrc.com/index.php?g=activity&m=activity&a=site_portal&id=', '', $arr['href']); return $arr; }); $res = $tableRows->all(); foreach ($res as $v) { Db::table('psite')->insert([ 'id' => $v['id'], 'href' => $v['href'], ]); } return 'ok'; } public function t2() { $site = Db::table('psite')->select(); foreach ($site as $v) { $ql = QueryList::get($v['href']); $rt['town'] = str_replace('所在乡镇:', '', $ql->find('.head h4')->text()); $rt['content'] = $ql->find('.intro-content')->text(); $rt['contact'] = $ql->find('.comment-ranking p:eq(0) strong')->text(); $rt['mobile'] = $ql->find('.comment-ranking p:eq(1) strong')->text(); $rt['email'] = $ql->find('.comment-ranking p:eq(2) strong')->text(); $rt['address'] = $ql->find('.comment-ranking p:eq(5) strong')->text(); Db::name('activity_site')->where('id', $v['id'])->update($rt); } } public function t3() { set_time_limit(0); $site = Db::table('psite')->select(); foreach ($site as $v) { $this->_getActivity($v['href'], $v['id']); } } private function _getActivity($url, $id, $page = 1) { $rt = QueryList::get($url . '&p=' . $page)->rules([ 'href' => ['.item-image a', 'href'], 'image' => ['.item-image img', 'src'], ])->range('.row .span9 .span3')->query()->getData(); $flag = QueryList::get($url . '&p=' . $page)->find('.pagination li:last')->text(); $list = $rt->all(); if (!empty($list)) { foreach ($list as $v) { Db::table('pactivity')->insert([ 'site_id' => $id, 'href' => 'http://rcyz.qxrc.com' . $v['href'], 'image' => $v['image'], ]); } } if ($flag == '尾页') { $this->_getActivity($url, $id, $page + 1); } } public function t4() { set_time_limit(0); $list = Db::table('pactivity')->select(); foreach ($list as $v) { $ql = QueryList::get($v['href']); $arr = []; $arr['id'] = (int)str_replace('http://rcyz.qxrc.com/index.php?g=activity&m=activity&a=detail&id=', '', $v['href']); $arr['title'] = $ql->find('.article-box h2')->text(); $arr['main_image'] = (string)$v['image']; $arr['start_time'] = strtotime($ql->find('.tc-box:eq(3)>div:eq(1)>div:eq(0) strong')->text()); $end_time = strtotime($ql->find('.tc-box:eq(3)>div:eq(1)>div:eq(1) strong')->text()); $arr['end_time'] = $end_time > 0 ? $end_time : 0; $arr['address'] = $ql->find('.tc-box:eq(4)>div:eq(1) strong')->text(); $arr['user_id'] = $v['site_id']; $arr['content'] = $ql->find('#article_content')->html(); $info = $ql->find('.article-infobox span:eq(0)')->text(); $info = explode('|', $info); $arr['create_time'] = strtotime(trim(str_replace('创建于:', '', $info[0]))); $arr['author'] = trim(str_replace('作者:', '', $info[1])); $arr['status'] = 2; Db::name('activity')->insert($arr); } return 'ok'; } public function t5() { $ql = QueryList::get('http://rcyz.qxrc.com/index.php?g=portal&m=index&a=review_list&p=1'); $this->_getReviewList($ql); $ql = QueryList::get('http://rcyz.qxrc.com/index.php?g=portal&m=index&a=review_list&p=2'); $this->_getReviewList($ql); } private function _getReviewList(QueryList $ql) { $rt = $ql->rules([ 'href' => ['.item-image a', 'href'], 'image' => ['.item-image img', 'src'], ])->range('.tc-gridbox')->query()->getData(); $list = $rt->all(); foreach ($list as $v) { Db::table('preview')->insert([ 'href' => 'http://rcyz.qxrc.com' . $v['href'], 'image' => $v['image'], ]); } } public function t6() { $list = Db::table('preview')->select(); foreach ($list as $v) { $ql = QueryList::get($v['href']); $arr = []; $arr['title'] = $ql->find('.article-box>h2')->text(); $arr['content'] = $ql->find('#article_content')->html(); $arr['main_image'] = $v['image']; $href = $ql->find('.row>.span3>div:eq(0)>div:eq(1)>div:eq(0) a')->attr('href'); $arr['activity_id'] = (int)str_replace('/index.php?g=activity&m=activity&a=detail&id=','',$href); $arr['user_id'] = (int)Db::name('activity')->where('id',$arr['activity_id'])->value('user_id'); $arr['create_time'] = time(); Db::name('activity_review')->insert($arr); } } }