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 相关文章推荐
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
php实现邮件发送并带有附件
Jan 24 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
php实现session共享的实例方法
Sep 19 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
PHP实现简单用户登录界面
Oct 23 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
PHP 快速排序算法详解
2014/11/10 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
jQuery Validate表单验证入门学习
2015/12/18 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
python中defaultdict的用法详解
2017/06/07 Python
python中的计时器timeit的使用方法
2017/10/20 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
python3排序的实例方法
2020/10/20 Python
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
物流仓管员岗位职责
2013/12/04 职场文书
毕业实习个人鉴定范文
2013/12/10 职场文书
先进事迹报告会感言
2014/01/24 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
工作表扬信范文
2015/01/17 职场文书
婚育证明格式
2015/06/17 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python