/**

* 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);

php中的图像下载函数,PHP实现的下载远程图片自定义函数分享相关推荐

  1. php正则网络图片格式,php中通过正则表达式下载内容中的远程图片的函数代码

    这段程序其实是属于"小偷程序"的重要部分. 这一段程序只是下载远程图片的那一段而已,程序写的比较简单,大多部分都做了注释. if (preg_match_all("/ht ...

  2. mysql自定义函数应用_mysql functions实例:在自定义函数中应用字符串函数

    分享一段mysql自定义函数的代码,在其中用到了mysql的字符串函数length. 代码: mysql> delimiter $$ mysql> CREATE FUNCTION myFu ...

  3. python定义函数prime判断是否是素数_用自定义函数判断素数 用C语言编写自定义函数prime(int x),判断x是否为素数?...

    用C语言编写自定义函数prime(int x),判断x是否为素数? int prime(int x) { int i,k k=(int)sqrt( (double)x ) for(i=2i&l ...

  4. 未捕获typeerror: $形象。cropper不是函数_没有学不会的python--细说自定义函数的细节...

    没有学不会的python 函数是什么? 老调常谈,还是那老一套,学习一个东西前,先搞懂是什么,再来学习怎么用. 函数函数,如果你是刚经历过高考肯定很熟悉,数学中就经常出现这个名词,比如什么sin函数, ...

  5. c语言怎样得到函数内参数的值_MySQL之自定义函数

    MySQL不仅内置了一些常用函数,同时也支持自定义函数,来满足开发者的需求 函数定义 MySQL的函数定义语法如下: CREATE functionName:函数名,同MySQL内置函数一样,大小写不 ...

  6. mysql 自定义函数 事务_MySQL存储过程、触发器、自定义函数、事务

    1.存储过程 MySQL中存储过程的参数中有IN.OUT.INOUT类型,但是函数的参数只能是IN类型的. "in" 参数:跟 C 语言的函数参数的值传递类似, MySQL 存储过 ...

  7. c语言何编写自定义函数,C语言菜鸟基础教程之自定义函数

    C语言菜鸟基础教程之自定义函数 先动手编写程序: #include int add(int x, int y) { int z = x + y; return z; } int main() { in ...

  8. 图片本地化 php,php抓取远程图片本地化函数,很好用的.喜欢的拿去

    /** *功能:php完美实现下载远程图片保存到本地 *参数:文件url,保存文件目录,保存文件名称,使用的下载方式 *当保存文件名称为空时则使用远程文件原来的名称 */ protected func ...

  9. python数据函数定义的规则是什么_Python自定义函数基础概念

    一.函数定义语法: def 函数名(形参列表): 语句块 二.函数定义规则 1. 函数的名字就是语句块的名称 2. 函数名的命名规则与变量名相同(函数名必须是标识符) 3. 函数名是一个变量(不要轻易 ...

最新文章

  1. 排序算法 C++代码实现
  2. JavaScript值得注意的小知识点
  3. oracle触发器 select into,Oracle触发器中selectinto报错no_data_found异常处理
  4. zabbix 监控配置1
  5. 解决 ASP.NET Core 部署到 IIS,更新项目时文件夹正在使用错误
  6. c# MEF框架(四 MEF高级进阶)
  7. 无网络访问权限怎么办_老司机教你IPV4无网络访问权限怎么办
  8. 【CNMP系列】CentOS7.0下安装Nginx服务
  9. java day08【String类、static关键字、Arrays类、 Math类】
  10. win8.1 uefi引导
  11. 【高效办公】一个鼠标键盘控制两台电脑-synergy
  12. TonglinkQ8基于linux 7.5的安装
  13. 冰点还原精灵怎么使用
  14. visio2013报临时目录下某些文件找不到(实际有)
  15. 热门应用借微信玩花样:一大波红包正在来袭
  16. 小型企业Azure云迁移大型指南
  17. el-rate的使用
  18. 华云数据董事长许广彬接受中央电视台采访:推动职业教育发展
  19. 使用python绘制奥运五环
  20. Invalid default value for

热门文章

  1. 不提拔你,就是因为你只想把工作做好
  2. 多迪技术总监揭秘:PHP为什么是世界上最好的语言?
  3. swift菜鸟入门视频教程-09-类和结构体
  4. JMS中的消息通信模型
  5. 在WPF中实现玻璃模糊效果
  6. Github Page创建个人主页以及绑定域名
  7. Xtreme TaskPanel
  8. 缺少using namespace std;
  9. 好久没有用c++,转一个c++注意点
  10. 贝叶斯统计 传统统计_统计贝叶斯如何补充常客