这个是从网上找到的,具体是谁写的已经记不清了,非原创!
/**
* 获取远程图片的宽高和字节数
* @param string $url
* @param string $isGetFilesize
* @return boolean|multitype:string number
*/
private function getImageInfo($url, $isGetFilesize = false)
{
$result = array();
if (empty($url)) {
return false;
}
$handle = fopen($url, 'rb');
if (! $handle) return false;
// 只取头部固定长度168字节数据
$dataBlock = fread($handle, 168);
$size = getimagesize('data://image/jpeg;base64,'. base64_encode($dataBlock));
if (empty($size)) {
return false;
}
$result['width'] = isset($size[0]) ? intval($size[0]) : 0;
$result['height'] = isset($size[1]) ? intval($size[1]) : 0;
// 是否获取图片体积大小
if ($isGetFilesize) {
// 获取文件数据流信息
$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;
}
来源:https://www.cnblogs.com/lrxing/p/7844688.html