杨小杰Blog(Youngxj)提供免费教程下载和网站搭建技术教程,主要分享和发布网站源码,致力创造一个高质量网络资源教程的分享平台

远程采集正则图片案例

Young小杰2018-9-20 10:48 网站搭建(6)3695小标签: 诗梦博客 api 原创 源码

前面发的《远程采集接口图片案例》用过的都说好

远程采集正则图片案例

小诗梦之后把图片放到了另外一个域名,而且图片方式有所变更,所以写了一个正则采集方式


<?php
/**
 * 随机图片正则采集案例
 * @author Youngxj <blog@youngxj.cn>
 * @url    http://blog.youngxj.cn
 * @time   2018-09-20
 */
//图片接口地址(这里还是要拿小诗梦开刀)
$url = 'https://cdn.mom1.cn/';

// 图片存放文件夹
$path = 'images/';

$str = file_get_contents($url);
preg_match_all('/<img alt="\/\/(.*?)" src="\/\/(.*?)" \/>/',$str,$img);

$imgUrl = 'https://'.$img[2][0];
if(!$imgUrl){
	exit(json_encode(array('error'=>'采集失败')));
}

$filename = basename($imgUrl);

$filenames = $path.$filename;

if(file_exists($filenames)){
  //文件已经存在
  echo json_encode(array('url'=>$imgUrl,'filename'=>$filenames,'state'=>'202'));
}else{
  if(download($imgUrl,$path)){
    //采集成功
    echo json_encode(array('url'=>$imgUrl,'filename'=>$filenames,'state'=>'200'));
  }else{
    //采集失败
    echo json_encode(array('url'=>$imgUrl,'filename'=>$filenames,'state'=>'201'));
  }

}

function download($url, $path = 'images/')
{
  //远程下载保存
  if (! file_exists ( $path )) {
    mkdir ( "$path", 0777, true );
  }
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,2);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  $file = curl_exec($ch);
  curl_close($ch);
  $filename = pathinfo($url, PATHINFO_BASENAME);
  $resource = fopen($path . $filename, 'a');
  fwrite($resource, $file);
  fclose($resource);
  return true;
}
 ?>



本文最后更新于2018-9-20,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

发表评论:

评论列表:

  • 天天 Lv 1

    动态图接口怎么采集?能不能只采集链接不下载图片 -_-!

  • 胡青铜 Lv 1

    小诗梦会咋想打卡成功,现在时间:19点42分记得每天坚持打卡哦!

  • 不知道诗梦会不会被气死

  • 来瞧瞧了

  • 手机扫描二维码
    阅读体验更佳