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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值