刚写的,把工作减轻下,也不想用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函数内的正则改改。