phpcms 图集采集功能
phpcms 图集采集功能
baiyygysve 发表于7个月前
phpcms 图集采集功能
  • 发表于 7个月前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

phpcms 有自带采集功能,但好像不支持图集模型采集(多图是后台用flash上传),文章模型的图片是可以下载运程图片的,基本流程是用编辑器内容提交后,正则判断是否包含运程图片,包含就下载!那么我们图片也是可以用编辑器中的下载功能,即系统类中attachment的download方法,把要下载的图片制作成html然后把编辑器的下载功能拿来用,这样就可以下载下来运程图片,然后把v9_picture_data中的pictureurls 修改成我们下载下来的图片地址,这样就达到了采集图集的目的了!

流程

1、采集目标站的标题、图集地址 getcontentdata($url)功能;

2、将采集到的图集地址组装成'<img src="运程图片下载地址"'/>HTML格式,然后下载并获取下载后的本地图片地址 downloadpic($picarr, $title)功能;

3、入库并修改图集副表中的pictureurls值import_content($data)功能;

这样图集就下载并存入数据库中了!

function getcontentdata($url) {
	$contenthtml=file_get_html($url);
	$pictures=array();
	if (!is_object($contenthtml)) return false;
	$title='';//目标站标题
	$pictures=array();
	for($i=1;$i=10;$i++){
	$pictures[]='http://xxx/pic/'.$i.'.jpg';//目标站要下载的图集地址
	}
	//下载图片
	$pictures=downloadpic($pictures, $title);
	$data['title']=$title;
	$data['pictures']=$pictures;
	//$data['keywords']=$keywords;
	return $data;
}

 

function downloadpic($picarr, $title) {
	$pictures=array();

	if (!array($picarr || empty($picarr))) {
		return $pictures;
	}
	foreach ($picarr as $key => $pic) {
		$picarr[$key]='<img src="'.$pic.'" />';
	}
	if (!array($picarr || empty($picarr))) {
		return $pictures;
	}
	$value=implode(' ', $picarr);
	//初始化附件类
	pc_base::load_sys_class( 'attachment', '', 0 );
	$attachment = new attachment( 'content', '0', 1 );
	$value = $attachment->download('content', $value);
	preg_match_all("/(href|src)=([\"|']?)([^ \"'>]+\.('gif|jpg|jpeg|bmp|png'))\\2/i", $value, $matches);
	if (!empty($matches[3])) {
		foreach ($matches[3] as $k=>$v) {
			
			$pictures[$k]['url']=$v;
			$pictures[$k]['alt']=$title;
		}
	}
	return $pictures;
}
/导入文章到模型
//$data 入库数据
//$id 采集列表ID用于修改状态
function import_content($data) {
	$content_db=pc_base::load_model( 'content_model' );
	$content_db->set_model(3);
	$sql = array('catid'=>$data['catid'], 'status'=>$data['status'], 'title'=>$data['title'], 'thumb'=>$data['thumb']);
	$contentid = $content_db->add_content($sql, 1);
	//图集图片入库
	$content_db->update(array('pictureurls'=>array2string($data['pictureurls'])), array('id'=>$contentid));
	//加图图集信息与内容id对应建立关系
	insert_attrchment($data['catid'], $contentid);
	echo $contentid."INSERT SUCCESS\r\n";
}
function insert_attrchment($catid, $contentid) {
	$attachment_db = pc_base::load_model('attachment_model');
	$attachment_db->api_update($GLOBALS['downloadfiles'], 'c-'.$catid.'-'.$contentid,1);
}

 

 

 

共有 人打赏支持
粉丝 0
博文 6
码字总数 12131
×
baiyygysve
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: