文档章节

phpcms 图集采集功能

baiyygysve
 baiyygysve
发布于 2017/05/19 16:14
字数 548
阅读 7
收藏 0

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

 

 

 

© 著作权归作者所有

共有 人打赏支持
baiyygysve
粉丝 0
博文 21
码字总数 17541
作品 0
厦门
程序员
PHPCMS后台密码忘记解决办法

什么是PHPCMS? PHPCMS是一款网站管理软件。该软件采用模块化开发,支持多种分类方式,使用它可方便实现个性化网站的设计、开发与维护。它支持众多的程序组合,可轻松实现网站平台迁移,并可...

OneTODO
2016/10/30
11
0
WCMS V9.0 正式版发布

新增的功能 1、自定义多个标签 如面积、风格、颜色 2、增加了通过标签搜索 3、修改后台界面参考了phpcms 4、后台可自行开启是否打水印和配置位置 5、列表页参数 cid分类 sort排序 flag标签 ...

大灰狼wow
2015/07/24
4K
7
推荐PHPCMS V9网站系统

PHPCMS V9(后面简称V9)采用PHP5+MYSQL做为技术基础进行开发。V9采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发 形式。框架易于功能扩展,代码维护,优秀的二次...

xiaogg
2011/11/08
0
0
phpcms v9采集中遇到的相对路径的问题

一、采集网址时,遇上网址是相对路径的问题。(网上抄的,可用) 修改数据库v9collectionnode,增加两个字段replacefrom,replaceto(varchar(200)) 1、 /phpcms/modules/collection/templat...

wushan37
06/26
0
0
内容管理系统--yiifcms

yiifcms 是基于 YII 框架开发的内容管理系统,功能强大,运行高效,稳定安全,是学习 php 和建站的良好选择。 目前已开发到 1.5版本 目前cms功能有: 用户注册、登录, 邮箱激活,支持第三方授...

Ps_极客
2014/09/24
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

Android WebView制作简易浏览器

最终效果 先创建一个WebView控件,其他的就是通过线性布局在上方加入网址输入框和两个按钮 <WebView android:id="@+id/act_webview_wv" android:layout_width="ma...

lanyu96
15分钟前
1
0
解决MacOS升级系统Sierra到Mojave后git报错

错误信息 升级MacOS Sierra到Mac Mojave后执行git命令报错: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/......

阿dai
15分钟前
1
0
兄弟连区块链教程以太源码分析CMD深入分析(一)

cmd包分析 cmd下面总共有13个子包,除了util包之外,每个子包都有一个主函数,每个主函数的init方法中都定义了该主函数支持的命令,如 geth包下面的: func init() { // Initialize the...

兄弟连区块链入门教程
17分钟前
1
0
Titan Framework MongoDB深入理解1

在TitanFrameWork框架中,已经集成了MongoDB的各个功能,现在我们对框架内部的一些重要类进行分析与解读。 MongoDBConverter 在Titan框架中,比较重要的一个接口就是MongoDBConverter,它是作...

云季科技
22分钟前
1
0
SpringBoot集成Quartz

SpringBoot集成Quartz 什么是Quartz Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application - from the smalle......

Grittan
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部