php获取远程图片体积大小的实例


Posted in PHP onNovember 12, 2013

直接看代码吧,很好明白的

//用法 echo remote_filesize($url,$user='',$pw='');
$url = "http://www.aa.com/librarys/images/random/rand_11.jpg";//这里要换成你的图片地址
echo remote_filesize($url,$user='',$pw='');
function remote_filesize($uri,$user='',$pw='')
{
// start output buffering
    ob_start();
// initialize curl with given uri
    $ch = curl_init($uri); // make sure we get the header
    curl_setopt($ch, CURLOPT_HEADER, 1); // make it a http HEAD request
    curl_setopt($ch, CURLOPT_NOBODY, 1); // if auth is needed, do it here
    if (!empty($user) && !empty($pw))
    {
        $headers = array('Authorization: Basic ' . base64_encode($user.':'.$pw));
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    $okay = curl_exec($ch);
    curl_close($ch); // get the output buffer
    $head = ob_get_contents(); // clean the output buffer and return to previous // buffer settings
    ob_end_clean();  // gets you the numeric value from the Content-Length // field in the http header
    $regex = '/Content-Length:\s([0-9].+?)\s/';
    $count = preg_match($regex, $head, $matches);  // if there was a Content-Length field, its value // will now be in $matches[1]
    if (isset($matches[1]))
    {
        $size = $matches[1];
    }
    else
    {
        $size = 'unknown';
    }
    $last_mb = round($size/(1024*1024),3);
 $last_kb = round($size/1024,3);
    return $last_kb . 'KB / ' . $last_mb.' MB';
}

函数的思路是,先CURL获取图片到缓冲区,然后正则获取图片的Content-Length信息就OK了。
PHP 相关文章推荐
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
php下mysql数据库操作类(改自discuz)
Jul 03 PHP
PHP编程函数安全篇
Jan 08 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
php curl模拟post提交数据示例
Dec 31 PHP
PHP之uniqid()函数用法
Nov 03 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 PHP
PHP实现倒计时功能
Nov 16 PHP
php过滤XSS攻击的函数
Nov 12 #PHP
php获取新浪微博数据API实例
Nov 12 #PHP
php生成N个不重复的随机数实例
Nov 12 #PHP
三种php连接access数据库方法
Nov 11 #PHP
PHP中ob_start函数的使用说明
Nov 11 #PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 #PHP
PHP利用str_replace防注入的方法
Nov 10 #PHP
You might like
php设计模式之策略模式应用案例详解
2019/06/17 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
python中反射用法实例
2015/03/27 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
什么是跨站脚本攻击
2014/12/11 面试题
家长学校工作方案
2014/05/07 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
2014年库房工作总结
2014/11/26 职场文书
会议欢迎词
2015/01/23 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
导游词之江南周庄
2019/12/06 职场文书
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
Python中的 enumerate和zip详情
2022/05/30 Python
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang