zoukankan      html  css  js  c++  java
  • 读取远程图片的二进制流

    获取图片的二进制流方法很多,file_get_contents,fread,readfile,curl等

    1、curl

    function httpDownload($url){    
        if(empty($url)){    
            return false;    
        }    
        $ch = curl_init();  
        curl_setopt($ch, CURLOPT_URL, $url);  
        curl_setopt($ch, CURLOPT_TIMEOUT, 2);  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
        $r = curl_exec($ch);  
        curl_close($ch);  
        return $r;  
    }  

    $url为图片地址,返回值$r就是所读取的图片的二进制流

    2、readfile:函数读取文件,并把它写入输出缓冲(此方法本人亲测,可以读取阿里云远程Oss图片文件)

    function httpDownload($url){    
        if(empty($url)){    
            return false;    
        }    
        ob_start();  
        $contents = @readfile($url);  
        $img = ob_get_contents();   
        ob_end_clean();  
        return $img;  
    }  

    3、file_get_contents

    function httpDownload($url){    
        if(empty($url)){    
            return false;    
        }    
        $img = file_get_contents($url);   
        return $img;  
    } 

    4、fread(filesize无法获取远程文件的大小)

    function httpDownload($url){    
        if(empty($url)){    
            return false;    
        }    
        $file = fopen($url,"rb");  //rb是以二进制流的模式打开  
        fread($file,filesize($url));  
        fclose($file);  
    }

    本帖转载自:https://blog.csdn.net/muzi187/article/details/56486178

  • 相关阅读:
    pandas之DataFrame
    python浅拷贝和深拷贝
    Numpy 机器学习三剑客之Numpy
    django--验证码功能实现
    python基础题
    python武器库
    django-rest-framework
    django--admin组件
    【转载】关于DBUtils中QueryRunner的一些解读
    【转载】java中的反射
  • 原文地址:https://www.cnblogs.com/clubs/p/9149148.html
Copyright © 2011-2022 走看看