正则采集方式远程采集图片案例

之前小诗梦就写过一个案例相信大家都用过吧!现在小诗梦又把图片放到了另外一个域名,而且图片方式有所变更,下面这个案例呢是杨小杰写的新采集方式转载分享给大家

<?php
/**
 * 随机图片正则采集案例
 * @author Youngxj <blog@youngxj.cn>
 * @url    http://www.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;
}
 ?>


本博客所有文章如无特别注明均为原创。作者:Vsen.小轩复制或转载请以超链接形式注明转自 维森博客
原文地址《正则采集方式远程采集图片案例
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(10)

写的很好,支持一下
异界没有手机 1周前 (2019-05-10) 回复
文章不错非常喜欢
新闻头条 3周前 (2019-05-02) 回复
学到了,谢谢
知识共享网 4周前 (2019-04-21) 回复
虽然不知道说的是什么,但看起来好厉害的样子!
蓝领笑笑生 2个月前 (2019-04-02) 回复
文章不错,非常喜欢
丘八阅读网 2个月前 (2019-03-19) 回复
厉害了博主,我一般都是用插件的
楚狂人 5个月前 (2018-12-12) 回复
游山玩水路过此地
龙行 6个月前 (2018-11-10) 回复
有给力的图床嘛
外遇取证费用 7个月前 (2018-11-05) 回复
@外遇取证费用:七牛,阿里,腾讯镜像储存
Vsen.小轩 6个月前 (2018-11-15) 回复
路过
演员 7个月前 (2018-10-14) 回复