失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php获取网络图片的大小 PHP获取远程图片尺寸和大小实例演示

php获取网络图片的大小 PHP获取远程图片尺寸和大小实例演示

时间:2021-04-16 10:09:53

相关推荐

php获取网络图片的大小 PHP获取远程图片尺寸和大小实例演示

这篇文章主要为大家详细介绍了PHP获取远程图片尺寸和大小实例演示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

PHP功能强大,今天361源码给大家介绍的是:

PHP获取远程图片尺寸和大小实例演示

因为很多用PHP的朋友不少时候需要获取远程的图片尺寸或者大小,所有才有如下代码:/**

*361源码获取远程图片的宽高和体积大小

*

*@paramstring$url远程图片的链接

*@paramstring$type获取远程图片资源的方式,默认为curl可选fread

*@paramboolean$isGetFilesize是否获取远程图片的体积大小,默认false不获取,设置为true时$type将强制为fread

*@returnfalse|array

*/

functionmyGetImageSize($url,$type='curl',$isGetFilesize=false)

{

//若需要获取图片体积大小则默认使用fread方式

$type=$isGetFilesize?'fread':$type;

if($type=='fread'){

//或者使用socket二进制方式读取,需要获取图片体积大小最好使用此方法

$handle=fopen($url,'rb');

if(!$handle)returnfalse;

//只取头部固定长度168字节数据

$dataBlock=fread($handle,168);

}

else{

//据说CURL能缓存DNS效率比socket高

$ch=curl_init($url);

//超时设置

curl_setopt($ch,CURLOPT_TIMEOUT,5);

//取前面168个字符通过四张测试图读取宽高结果都没有问题,若获取不到数据可适当加大数值

curl_setopt($ch,CURLOPT_RANGE,'0-167');

//跟踪301跳转

curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);

//返回结果

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

$dataBlock=curl_exec($ch);

curl_close($ch);

if(!$dataBlock)returnfalse;

}

//将读取的图片信息转化为图片路径并获取图片信息,经测试,这里的转化设置jpeg对获取png,gif的信息没有影响,无须分别设置

//有些图片虽然可以在浏览器查看但实际已被损坏可能无法解析信息

$size=getimagesize('data://image/jpeg;base64,'.base64_encode($dataBlock));

if(empty($size)){

returnfalse;

}

$result['width']=$size[0];

$result['height']=$size[1];

//是否获取图片体积大小

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($dataInfoas$va){

if(preg_match('/length/iU',$va)){

$ts=explode(':',$va);

$result['size']=trim(array_pop($ts));

break;

}

}

}

if($type=='fread')fclose($handle);

return$result;

}

//测试的图片链接

echo'

';

$result=myGetImageSize('/b7/bao/120630/2kpa6_kqywusdel5bfqrlwgfjeg5sckzsew_345x483.jpg_225x999.jpg','curl');

print_r($result);

echo'

';

$result=myGetImageSize('/b7/bao/120629/6d3or_kqytasdel5bgevsugfjeg5sckzsew_801x1193.jpg','fread');

print_r($result);

echo'

';

$result=myGetImageSize('/zhengmingjiang/pic/item/1c5f338c6d22d797503d92f9.jpg','fread',true);

print_r($result);

echo'

';

$result=myGetImageSize('/wp-content/uploads//01/imveganlogotransparentbackground.png','curl',true);

print_r($result);

echo'

';

$result=myGetImageSize('/front/templates/jiaoyou/styles/default/image/ad_pic_1.gif','fread');

print_r($result);

OK,完成,有需要的朋友参考上面代码多做研究。

以上就是PHP获取远程图片尺寸和大小实例演示的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持361模板网。

感谢打赏,我们会为大家提供更多优质资源!

如果觉得《php获取网络图片的大小 PHP获取远程图片尺寸和大小实例演示》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。