文档章节

PHP CodeBase: 获取远程图片的体积大小

ywppengpeng
 ywppengpeng
发布于 2016/11/22 10:54
字数 244
阅读 6
收藏 0

有时候,我们需要知道远程图片的体积大小,那么PHP如何可以做到呢?这里介绍一个函数,先来看看演示:

//用法 echo remote_filesize($url,$user='',$pw='');
$url = "http://img1.gtimg.com/sports/pics/hv1/182/50/2158/140336882.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';
}

程序运行结果:

© 著作权归作者所有

共有 人打赏支持
ywppengpeng
粉丝 5
博文 62
码字总数 31743
作品 0
西安
程序员
thirft with php(一)

About thrift ----The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build service......

o0无忧亦无怖
2016/03/17
29
0
在线编辑器 TQEditor 评测

TQEditor是国内第一个兼容IE9的在线编辑器, 也是一个功能体积比最优的的在线编辑器。笔者此前曾使用多款类似的在线编辑器,如:KindEditor CKEditor,相比这两款编辑器,虽然TQEditor的名气没...

litqqs
2011/10/21
1K
1
PHP生成验证码--Micoolcoder

多功能自定义PHP生成验证码 新增伪静态案例 支持自定义参数说明: 第一个参数 CS:简体中文 CT:繁体中文 E:大小英文 e:小写英文 D:数字 Ee:大小写英文 EeD:大小英文数字 ED:大写数字 eD:小写数...

Micool
2012/07/13
3.1K
0
用Windows Live Writer在51CTO写博客

打开客户端:使用Windows Live Writer时会出现向导界面,快速引导我们配置博客空间,如图: 选择“其他日志服务” 设置博客帐户: 1、在您的日志网址中输入:您的博客地址/xmlrpc.php 2、输入...

技术小牛人
2017/11/14
0
0
图片自动缩放--autoCropImage

将图片自动缩放成指定大小,减少图片体积,从而加快下载速度,降低下载时间和成本。 使用说明 URI 模式 http://localhost/images/pic.jpg_50x100.jpg http://localhost/images/pic.jpg_50x10...

MingfunWong
2014/02/27
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
38分钟前
3
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
42分钟前
4
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
52分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
53分钟前
4
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
56分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部