加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com.cn/)- 科技、图像处理、媒体智能、办公协同、操作系统!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP实现的下载远程图片自定义函数分享

发布时间:2022-06-15 10:06:19 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP实现的下载远程图片自定义函数分享,本文直接给出实现代码和,本文直接给出实现代码和使用方法,需要的朋友可以参考下 ?php /** * PHP下载远程图片到本地 * * @param $url string 远程文件地址 * @param $filename string 保存后的文件名
  这篇文章主要介绍了PHP实现的下载远程图片自定义函数分享,本文直接给出实现代码和,本文直接给出实现代码和使用方法,需要的朋友可以参考下
 
  <?php
  /**
   * PHP下载远程图片到本地
   *
   * @param $url string 远程文件地址
   * @param $filename string 保存后的文件名(为空时则为随机生成的文件名,否则为原文件名)
   * @param $fileType array 允许的文件类型
   * @param $dirName string 文件保存的路径(路径其余部分根据时间系统自动生成)
   * @param $type int 远程获取文件的方式
   * @return json 返回文件名、文件的保存路径
   * @author blog.snsgou.com
   */
  function getImage($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif'), $type = 1)
  {
   if ($url == '')
   {
    return false;
   }
   // 获取文件原文件名
   $defaultFileName = basename($url);
   
   // 获取文件类型
   $suffix = substr(strrchr($url, '.'), 1);
   if (!in_array($suffix, $fileType))
   {
    return false;
   }
   
   // 设置保存后的文件名
   $fileName = $fileName == '' ? time() . rand(0, 9) . '.' . $suffix : $defaultFileName;
   
   // 获取远程文件资源
   if ($type)
   {
    $ch = curl_init();
    $timeout = 15; // 超时时间
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file = curl_exec($ch);
    curl_close($ch);
   }
   else
   {
    ob_start();
    readfile($url);
    $file = ob_get_contents();
    ob_end_clean();
   }
   
   // 设置文件保存路径
   $dirName = $dirName . '/' . date('Y', time()) . '/' . date('m', time()) . '/' . date('d', time()) . '/';
   if (!file_exists($dirName))
   {
    mkdir($dirName, 0777, true);
   }
   
   // 保存文件
   $res = fopen($dirName . $fileName, 'a');
   fwrite($res, $file);
   fclose($res);
   
   return "{'fileName':$fileName, 'saveDir':$dirName}";
  }
   
   
  // 举例
  // 返回:{'fileName':13668030896.jpg, 'saveDir':/www/test/img/2013/04/24/}
  echo getImage('http://img.wan.renren.com/images/2013/0430/1367294093164.jpg', '', 'd:/PHP/data', array('jpg', 'gif'), 1);
 

(编辑:吉安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读