php将远程图片下载保存到本地
2015-12-16 16:42
615 查看
/* *功能:php完美实现下载远程图片保存到本地 *参数:文件url,保存文件目录,保存文件名称,使用的下载方式 *当保存文件名称为空时则使用远程文件原来的名称 */ function getImage($url,$save_dir='',$filename='',$type=0){ if(trim($url)==''){ return array('file_name'=>'','save_path'=>'','error'=>1); } if(trim($save_dir)==''){ $save_dir='./'; } if(trim($filename)==''){//保存文件名 $ext=strrchr($url,'.'); if($ext!='.gif'&&$ext!='.jpg'){ return array('file_name'=>'','save_path'=>'','error'=>3); } $filename=time().$ext; } if(0!==strrpos($save_dir,'/')){ $save_dir.='/'; } //创建保存目录 if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){ return array('file_name'=>'','save_path'=>'','error'=>5); } //获取远程文件所采用的方法 if($type){ $ch=curl_init(); $timeout=5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $img=curl_exec($ch); curl_close($ch); }else{ ob_start(); readfile($url); $img=ob_get_contents(); ob_end_clean(); } //$size=strlen($img); //文件大小 $fp2=@fopen($save_dir.$filename,'a'); fwrite($fp2,$img); fclose($fp2); unset($img,$url); return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0); }
相关文章推荐
- zend studio 8 提示和代码字体如何修改
- PDO浅谈之php连接mysql
- php本地载慢 报56错误或者55错误
- php 导出 excel 乱码问题
- phpMyadmin安装极简教程[下载,解压,登录]
- vsftpd配置文件详解
- 如何在命令行中使用 ftp 命令上传和下载文件
- ThinkPHP去重 distinct和group by
- PHP函数小汇总(一)[个人笔记]
- PHP运行模式
- 深入php-fpm的两种进程管理模式详解
- php文件锁解析
- thinkphp3.2 获取当前位置的解决方法
- 结合PHP脚本添加和查询MySQL数据的基本教程
- 本地获取PHP程序中二级目录
- php 短信网关短信内容不能有空格
- PHP Date()函数详细参数
- 关于“约瑟夫环”的php的几种写法
- PHP接口的介绍与实现
- php自己创建TPL模板引擎之初学习