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

    xiaoxiao2021-04-18  50

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

    转载请注明原文地址: https://ju.6miu.com/read-674531.html

    最新回复(0)