入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

获取远程图片的宽、高和大小

创建时间:2017-04-14 投稿人: 浏览次数:100

php中获取远程图片的宽、高和大小,这里介绍两种方法:

方法一:

 function getImageinfo($url)
    {
        $result = array(
            "width"=>"",
            "height"=>"",
            "size"=>"",
        );
        $imageInfo = getimagesize($url);
        $result["width"]=$imageInfo[0];
        $result["height"]=$imageInfo[1];
        
        $headerInfo = get_headers($url,true);
        $result["size"]=$headerInfo["Content-Length"];

        return $result;
    }
    
    $url = "https://qncdn.wanshifu.com/237f4f2eebd1aea845e014a1634cad36?imageView2/0/interlace/1/ignore-error/1";
    $res = getImageinfo($url);
    print_r($res);




方法二:

function getImageinfo($url)
    {
        $imageInfo = getimagesize($url);
        if($imageInfo){
             $result["width"] = $imageInfo[0];
             $result["height"] = $imageInfo[1];
        }
       
        // 若需要获取图片体积大小则默认使用 fread 方式或者使用 socket 二进制方式读取, 需要获取图片体积大小最好使用此方法
        $handle = fopen($url, "rb");
        if ($handle) {
              //是否获取图片体积大小
                $meta = stream_get_meta_data($handle);// 获取文件数据流信息
                // nginx 的信息保存在 headers 里,apache 则直接在 wrapper_data
                $dataInfo = isset($meta["wrapper_data"]["headers"]) ? $meta["wrapper_data"]["headers"] : $meta["wrapper_data"];
                foreach ($dataInfo as $va) {
                    if (preg_match("/length/iU", $va)) {
                        $ts = explode(":", $va);
                        $result["size"] = trim(array_pop($ts));
                        break;
                    }
                }
                //关闭文件流
                fclose($handle);
        }

        return $result;
    }
   $url = "https://qncdn.wanshifu.com/237f4f2eebd1aea845e014a1634cad36?imageView2/0/interlace/1/ignore-error/1";
    $res = getImageinfo($url);
    print_r($res);


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。