刚写的,把工作减轻下,也不想用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/451
评论列表