phpcms二次开发图片采集接口

刚写的,把工作减轻下,也不想用phpcms后台的采集,那样不好直接搞完开始SEO优化,废话不说直接上代码哦。

api/目录下新建接口文件getpic.php,内容如下:

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
//获取图片链接
function GetUrl($pageurl){
	$a = file_get_contents($pageurl);
	preg_match_all("/<img src=\"(.*?)\" alt=\"(.*?)\" \/>/i", $a, $b);
	return $b[1][0];
}
//保存图片
function GrabImage($url, $img_path){
	if ($url == ""){
		return false;
	}
	$filename = date("Ymdhis").rand(100, 999).".jpg";			
 	ob_start();//打开输出
 	readfile($url);//输出图片文件
 	$img = ob_get_contents();//得到浏览器输出
 	ob_end_clean();//清除输出并关闭
 	$size = strlen($img);//得到图片大小
 	$fp2 = @fopen($img_path.$filename, "a");
 	fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名
 	fclose($fp2);
 	return APP_PATH.$img_path.$filename;//返回新的文件名
}

//获取页面内容
$picurl = $_GET['url'];
$item = file_get_contents($picurl);
preg_match_all("/<h1 class=\"center\">(.*?)\(1\/(.*?)\)<\/h1>/i", $item, $b);
if($b){
	$data[0] = 1;
	$data[1]['title'] = $b[1][0];
	$piclistnum = $b[2][0];

	//生成列表页
	//$pic = array();
	for ($i=1; $i<=$piclistnum; $i++) { 
		if($i == 1){
			$pic[$i] = $picurl;
		}else{
			//https://www.uumnt.com/shuaige/20498.html
			//https://www.uumnt.com/shuaige/20498_2.html
			$pic[$i] = str_replace(".html", "_".$i.".html", $picurl);
		}
	}

	//生成目录
	$img_path = "uploadfile/".date("Y/md/");
	if(!file_exists($img_path)){
		mkdir($img_path, 0777, ture);
	}

	//循环存储图片
	foreach ($pic as $key => $value) {
		$picname[$key] = GrabImage(GetUrl($value), $img_path);
	}

	$data[1]['list'] = $picname;	
}else{
	$data[0] = 0;
}

echo json_encode($data);
?>

然后我们需要在后台添加内容模版里添加代码,我是用的图片模型,所以判断下了modelid,找到phpcms/modules/content/templates/下的content_add.tpl.php里面找到dom结束的标签</html>后面添加如下代码:

<?php
if($modelid == 3){
?>
<script type="text/javascript">
$(function(){
	$("input[name='info[copyfrom]']").attr("placeholder","请输入要采集的图片页面地址!");
	$("input[name='info[copyfrom]']").after("<input type='button' id='collection' value='采集图片' /> ");
	$("#collection").click(function(){
		if($("input[name='info[copyfrom]']").val() == ''){
			alert("请输入要采集的图片页面地址!");
			return false;
		}else{
			var pic_url = $("input[name='info[copyfrom]']").val();
			$.get("/api.php?op=getpic",{url:pic_url},
				function(data){
					//alert(data);
					var info = eval(data);
					if(info[0] == 0){
						alert("采集失败!");
						return false;
					}else{
						$("#title").val(info[1]['title']);
						$("#thumb_preview").attr("src",info[1]['list'][1]);
						$("#thumb").val(info[1]['list'][1]);
						for (var p in info[1]['list']) {
							//alert(info[1]['list'][p]);
							$("#pictureurls").before("<div id='image_pictureurls_"+ p +"' style='padding:1px'><input type='text' name='pictureurls_url[]' value='"+ info[1]['list'][p] +"' style='width:310px;' ondblclick='image_priview(this.value);' class='input-text'> <input type='text' name='pictureurls_alt[]' value='"+ info[1]['title'] + p +"' style='width:160px;' class='input-text'> <a href=\"javascript:remove_div\('image_pictureurls_"+ p +"'\)\">移除<\/a><\/div>");

						}
						$("#nameTip").remove();
						$("input[name='info[copyfrom]']").val("");
					}
				});
		}
	});
});
</script>
<?php
}
?>

我是测试的uumnt.com的图片,其它站点的把GetUrl函数内的正则改改。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/454.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。