刚写的,把工作减轻下,也不想用phpcms后台的采集,那样不好直接搞完开始SEO优化。
api/目录下新建接口文件getpic.php,内容如下:
01.<?php02.defined('IN_PHPCMS') or exit('No permission resources.');03.//获取图片链接04.function GetUrl($pageurl){05. $a = file_get_contents($pageurl);06. preg_match_all("/<img src=\"(.*?)\" alt=\"(.*?)\" \/>/i", $a, $b);07. return $b[1][0];08.}09.//保存图片10.function GrabImage($url, $img_path){11. if ($url == ""){12. return false;13. }14. $filename = date("Ymdhis").rand(100, 999).".jpg"; 15. ob_start();//打开输出16. readfile($url);//输出图片文件17. $img = ob_get_contents();//得到浏览器输出18. ob_end_clean();//清除输出并关闭19. $size = strlen($img);//得到图片大小20. $fp2 = @fopen($img_path.$filename, "a");21. fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名22. fclose($fp2);23. return APP_PATH.$img_path.$filename;//返回新的文件名24.}25. 26.//获取页面内容27.$picurl = $_GET['url'];28.$item = file_get_contents($picurl);29.preg_match_all("/<h1 class=\"center\">(.*?)\(1\/(.*?)\)<\/h1>/i", $item, $b);30.if($b){31. $data[0] = 1;32. $data[1]['title'] = $b[1][0];33. $piclistnum = $b[2][0];34. 35. //生成列表页36. //$pic = array();37. for ($i=1; $i<=$piclistnum; $i++) { 38. if($i == 1){39. $pic[$i] = $picurl;40. }else{41. //https://www.uumnt.com/shuaige/20498.html42. //https://www.uumnt.com/shuaige/20498_2.html43. $pic[$i] = str_replace(".html", "_".$i.".html", $picurl);44. }45. }46. 47. //生成目录48. $img_path = "uploadfile/".date("Y/md/");49. if(!file_exists($img_path)){50. mkdir($img_path, 0777, ture);51. }52. 53. //循环存储图片54. foreach ($pic as $key => $value) {55. $picname[$key] = GrabImage(GetUrl($value), $img_path);56. }57. 58. $data[1]['list'] = $picname; 59.}else{60. $data[0] = 0;61.}62. 63.echo json_encode($data);64.?>
然后我们需要在后台添加内容模版里添加代码,我是用的图片模型,所以判断下了modelid,找到phpcms/modules/content/templates/下的content_add.tpl.php里面找到dom结束的标签</html>后面添加如下代码:
01.<?php02.if($modelid == 3){03.?>04.<script type="text/javascript">05.$(function(){06. $("input[name='info[copyfrom]']").attr("placeholder","请输入要采集的图片页面地址!");07. $("input[name='info[copyfrom]']").after("<input type='button' id='collection' value='采集图片' /> ");08. $("#collection").click(function(){09. if($("input[name='info[copyfrom]']").val() == ''){10. alert("请输入要采集的图片页面地址!");11. return false;12. }else{13. var pic_url = $("input[name='info[copyfrom]']").val();14. $.get("/api.php?op=getpic",{url:pic_url},15. function(data){16. //alert(data);17. var info = eval(data);18. if(info[0] == 0){19. alert("采集失败!");20. return false;21. }else{22. $("#title").val(info[1]['title']);23. $("#thumb_preview").attr("src",info[1]['list'][1]);24. $("#thumb").val(info[1]['list'][1]);25. for (var p in info[1]['list']) {26. //alert(info[1]['list'][p]);27. $("#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>");28. 29. }30. $("#nameTip").remove();31. $("input[name='info[copyfrom]']").val("");32. }33. });34. }35. });36.});37.</script>38.<?php39.}40.?>
我是测试的uumnt.com的图片,其它站点的把GetUrl函数内的正则改改。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/451
评论列表