0){
model('Collected')->insert(array(
'url' => $url,
'urlMd5' => md5 ( $url ),
'titleMd5'=>empty($title)?'':md5($title),
'target' => $returnData['target'],
'desc' => $returnData['desc']?$returnData['desc']:'',
'error'=>'',
'task_id' => $release ['task_id'],
'release' => $release['module'],
'addtime'=>time()
));
if(!empty($returnData['target'])){
$target=$returnData['target'];
if(preg_match('/^http(s){0,1}\:\/\//i',$target)){
$target=''.$target.'';
}
$this->echo_msg("成功将内容发布至:{$target}",'green',$echo);
}else{
$this->echo_msg("成功发布:{$url}",'green',$echo);
}
}else{
if(!empty($returnData['error'])){
if(model('Collected')->getCountByUrl($url)<=0){
model('Collected')->insert(array(
'url' => $url,
'urlMd5' => md5 ( $url ),
'titleMd5'=>'',
'target' => '',
'desc'=>'',
'error' => $returnData['error'],
'task_id' => $release ['task_id'],
'release' => $release['module'],
'addtime'=>time()
));
}
$this->echo_msg($returnData['error'].":{$url}",'red',$echo);
}
}
static $mcacheCont=null;
if(!isset($mcacheCont)){
$mcacheCont=CacheModel::getInstance('cont_url');
}
$mcacheCont->db()->where('cname',md5($url))->delete();
}
/*获取字段值*/
public function get_field_val($collFieldVal){
if(empty($collFieldVal)){
return '';
}
$val=$collFieldVal['value'];
if(!empty($GLOBALS['config']['caiji']['download_img'])){
if(!empty($collFieldVal['img'])){
if(!is_array($collFieldVal['img'])){
$collFieldVal['img']=array($collFieldVal['img']);
}
$total=count($collFieldVal['img']);
if($total>0){
$this->echo_msg('正在下载图片','black');
}
$curI=0;
foreach ($collFieldVal['img'] as $imgUrl){
$newImgUrl=$this->download_img($imgUrl);
if($newImgUrl!=$imgUrl){
$val=str_replace($imgUrl, $newImgUrl, $val);
}
$curI++;
if($curI<$total){
if(!empty($GLOBALS['config']['caiji']['img_interval'])){
sleep($GLOBALS['config']['caiji']['img_interval']);
}
}
}
}
}
return $val;
}
/*下载图片*/
public function download_img($url){
static $imgPaths=array();
static $imgUrls=array();
$img_path=$GLOBALS['config']['caiji']['img_path'];
$img_url=$GLOBALS['config']['caiji']['img_url'];
if(!isset($imgPaths[$img_path])){
if(empty($img_path)){
$imgPaths[$img_path]=config('root_path').'/data/images/';
}else{
$imgPaths[$img_path]=rtrim($img_path,'\/\\').'/';
}
}
$img_path=$imgPaths[$img_path];
if(!isset($imgUrls[$img_url])){
if(empty($img_url)){
$imgUrls[$img_url]=config('root_website').'/data/images/';
}else{
$imgUrls[$img_url]=rtrim($img_url,'\/\\').'/';
}
}
$img_url=$imgUrls[$img_url];
if(empty($url)){
return '';
}
if(!preg_match('/^\w+\:\/\//',$url)){
return $url;
}
static $imgList=array();
$key=md5($url);
if(!isset($imgList[$key])){
if(preg_match('/\.(jpg|jpeg|gif|png|bmp)\b/i',$url,$prop)){
$prop=strtolower($prop[1]);
}else{
$prop='jpg';
}
$filename='';
$imgurl='';
$imgname='';
if('url'==$GLOBALS['config']['caiji']['img_name']){
$imgname=substr($key,0,2).'/'.substr($key,-2,2).'/';
}else{
$imgname=date('Y-m-d',NOW_TIME).'/';
}
$imgname.=$key.'.'.$prop;
$filename=$img_path.$imgname;
$imgurl=$img_url.$imgname;
if(!file_exists($filename)){
$mproxy=model('Proxyip');
try {
$options=array();
if(!empty($GLOBALS['config']['caiji']['img_timeout'])){
$options['timeout']=$GLOBALS['config']['caiji']['img_timeout'];
}
if(!empty($GLOBALS['config']['proxy']['open'])){
$proxy_ip=$mproxy->get_usable_ip();
$proxyIp=$mproxy->to_proxy_ip($proxy_ip);
if(!empty($proxyIp)){
$options['proxy']=$proxyIp;
}
}
if(!empty($GLOBALS['config']['caiji']['img_max'])){
$options['max_bytes']=intval($GLOBALS['config']['caiji']['img_max'])*1024*1024;
}
$imgCode=get_html($url,null,$options,'utf-8');
if(!empty($imgCode)){
if(write_dir_file($filename,$imgCode)){
$imgList[$key]=$imgurl;
}
}
}catch (\Exception $ex){
}
}else{
$imgList[$key]=$imgurl;
}
}
return empty($imgList[$key])?$url:$imgList[$key];
}
/*获取采集器字段*/
public function get_coll_fields($taskId,$taskModule){
static $fieldsList=array();
$key=$taskId.'__'.$taskModule;
if(!isset($fieldsList[$key])){
$mcoll=model('Collector');
$collData=$mcoll->where(array('task_id'=>$taskId,'module'=>$taskModule))->find();
if(!empty($collData)){
$collData=$collData->toArray();
$collData['config']=unserialize($collData['config']);
$collFields=array();
if(is_array($collData['config']['field_list'])){
foreach ($collData['config']['field_list'] as $collField){
$collFields[]=$collField['name'];
}
}
$fieldsList[$key]=$collFields;
}
}
return $fieldsList[$key];
}
/*隐藏采集字段(删除字段)*/
public function hide_coll_fields($hideFields,&$collFields){
if(!empty($hideFields)&&!empty($collFields)&&is_array($hideFields)){
foreach ($collFields as $k=>$v){
foreach ($hideFields as $hideField){
unset($collFields[$k]['fields'][$hideField]);
}
}
}
}
/*utf8转换成其他编码*/
public function utf8_to_charset($charset,$val){
static $chars=array('utf-8','utf8','utf8mb4');
if(!in_array(strtolower($charset),$chars)){
if(!empty($val)){
$val=iconv('utf-8',$charset.'//IGNORE',$val);
}
}
return $val;
}
/*任意编码转换成utf8*/
public function auto_convert2utf8($arr){
$arr=array_array_map('auto_convert2utf8',$arr);
return $arr;
}
/*写入文件*/
public function write_file($filename,$data){
return write_dir_file($filename,$data);
}
}
?>