PHP下载远程图片并保存到本地方法

Wesley13
• 阅读 604
 /*
     * 上传网络图片
     */
    function GrabImage($url,$filename="") {
        if($url=="") return false;
        
        if($filename=="") {
            $ext=strrchr($url,".");
            if($ext!=".jpeg" && $ext!=".jpg" && $ext!=".png") return false; 
            preg_match('/\/([^\/]+\.[a-z]{3,4})$/i',$url,$matches);
            $image_name = strToLower($matches[1]);
            $filename='data/runtime/images/'.$image_name;
        }else{
            $image_name = $filename;
            $filename='data/runtime/images/'.$filename;
        }
//方法一
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 0);
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $file_content = curl_exec($ch);
        curl_close($ch);
        $downloaded_file = fopen($filename, 'w');
        fwrite($downloaded_file, $file_content);
        fclose($downloaded_file);
        return $image_name;

//方法二        
//        $src_im = imagecreatefromjpeg($url);
//        $srcW = ImageSX($src_im); //获得图像的宽
//        $srcH = ImageSY($src_im); //获得图像的高
//        $dst_im = ImageCreateTrueColor($srcW,$srcH); //创建新的图像对象
//        imagecopy($dst_im, $src_im, 0, 0, 0, 0, $srcW, $srcH);
//        imagejpeg($dst_im, $filename); //创建缩略图文件
 //       return $image_name;

//方法三
//        ob_start();
//        readfile($url);
//        $img = ob_get_contents();
//        ob_end_clean();
//        $size = strlen($img);
//       $fp2=@fopen($filename, "a");
//       fwrite($fp2,$img);
//        fclose($fp2);
//        return $image_name;
    }

ps: http://www.jb51.net/article/78455.htm http://www.cnblogs.com/mengxiaotian/p/5051579.html http://blog.csdn.net/iefreer/article/details/46930239

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
CuterCorley CuterCorley
3年前
uni-app入门教程(5)接口的基本使用
前言本文主要介绍uniapp提供的一些基础接口,包括:网络请求接口,用于通过指定的请求方法,携带特定的数据,向特定的地址请求并返回请求结果;图片处理接口,包括选择、预览、获取信息、保存到本地等接口;文件处理接口,包括文件上传和下载接口;数据缓存接口,包括以同步或异步的方式保存、获取或删除数据的接口。一、网络请求小程序要想正常运转,都需要与服务器端进
Stella981 Stella981
3年前
PHP远程下载图片,微信头像存到本地,本地图片转base64
方法一(推荐):functiondownload_remote_pic($url){$header'UserAgent:Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:45.0)Gecko/20100101Firefox/45.0',
Stella981 Stella981
3年前
Android 网络url设置View背景图
imgstr为url网络图片地址,topllay是要设置背景的控件;方法1.AndroidGlide设置View背景图Glide.with(this).load(imgStr).asBitmap()//签到整体背景.into(newSimpleTarget<Bitmap(){
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
URL相关函数
http://127.0.0.1/php/example/URL/pg2.php?user\_nameSERENE问号之前的部分是页面正常的URL,问号之后是附加URL上的部分相关函数:arrayparse\_url(stringurl)该函数对URL字符进行解析该数组中包含了解析的结果。stringurlencode(string
Wesley13 Wesley13
3年前
301跳转,文件
<IfModulemod\_rewrite.cRewriteEngineonRewriteCond%{REQUEST\_FILENAME}!dRewriteCond%{REQUEST\_FILENAME}!fRewriteRule^(.\)$index.php/$1\QSA,PT,L\Rewrite
Stella981 Stella981
3年前
Python下载网络图片方法汇总与实现
\本文介绍下载python下载网络图片的方法,包括通过图片url直接下载、通过re/beautifulSoup解析html下载以及对动态网页的处理等。\​本期小编推送2021初学者一定会用到的Python资料,含有小编自己呕心沥血整理的免费书籍/视频/在线文档和编辑器/源代码,关于\Python\的安装qun:850973621\
Wesley13 Wesley13
3年前
urllib.request.urlretrieve用法
'''  urllib.request.urltrieve(url,filenameNone,reporthookNone,dataNone)  url:远程服务器地址(即需要获取数据的地址)  filename:将远程获取的数据存放入的文件名'''importurllib.requestdefcallback(blocknum,
崇恩圣帝 崇恩圣帝
8个月前
使用Python识别英文数字验证码的实用指南
在网络应用中,英文数字验证码通常用于验证用户身份或防止机器人恶意行为。本文将介绍如何使用Python和一些常用的库来识别这类验证码,让你轻松应对验证码识别问题。1.下载验证码图片首先,我们需要从网络上下载验证码图片。假设验证码图片的URL为http://e