PHP 获取远程文件大小的3种解决方法


Posted in PHP onJuly 11, 2013

1、使用file_get_contents()

<?php
$file = file_get_contents($url);
echo strlen($file);
?>

2. 使用get_headers()
<?php
$header_array = get_headers($url, true);
$size = $header_array['Content-Length'];
echo $size;
?>

PS:
需要打开allow_url_fopen!
如未打开会显示
Warning: get_headers() [function.get-headers]: URL file-access is disabled in the server configuration
3.使用fsockopen()
<?php
 function get_file_size($url) {
     $url = parse_url($url);     if (empty($url['host'])) {
         return false;
     }
     $url['port'] = empty($url['post']) ? 80 : $url['post'];
     $url['path'] = empty($url['path']) ? '/' : $url['path'];
     $fp = fsockopen($url['host'], $url['port'], $error);
     if($fp) {
         fputs($fp, "GET " . $url['path'] . " HTTP/1.1\r\n");
         fputs($fp, "Host:" . $url['host']. "\r\n\r\n");
         while (!feof($fp)) {
             $str = fgets($fp);
             if (trim($str) == '') {
                 break;
             }elseif(preg_match('/Content-Length:(.*)/si', $str, $arr)) {
                 return trim($arr[1]);
             }
         }
         fclose ( $fp);
         return false;
     }else {
         return false;
     }
 }
 ?>
PHP 相关文章推荐
推荐一篇入门级的Class文章
Mar 19 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
php实现计数器方法小结
Jan 05 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
深入Nginx + PHP 缓存详解
Jul 11 #PHP
基于PHP中的常用函数回顾
Jul 11 #PHP
PHP 获取文件权限函数介绍
Jul 11 #PHP
浅析php学习的路线图
Jul 10 #PHP
php对图像的各种处理函数代码小结
Jul 08 #PHP
php/js获取客户端mac地址的实现代码
Jul 08 #PHP
关于PHP语言构造器介绍
Jul 08 #PHP
You might like
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
仿微博字符限制效果实现代码
2012/04/20 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
jquery获取下拉框中的循环值
2017/02/08 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
python服务器与android客户端socket通信实例
2014/11/12 Python
详解python 注释、变量、类型
2018/08/10 Python
PyTorch基本数据类型(一)
2019/05/22 Python
python 默认参数相关知识详解
2019/09/18 Python
python将时分秒转换成秒的实例
2019/12/07 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
成品仓管员岗位职责
2013/12/11 职场文书
中专生自我鉴定
2013/12/17 职场文书
打造完美自荐信
2014/01/24 职场文书
小学生环保演讲稿
2014/04/25 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA