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 相关文章推荐
php判断字符以及字符串的包含方法属性
Aug 30 PHP
php_xmlhttp 乱码问题解决方法
Aug 07 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
解析PHP的session过期设置
Jun 29 PHP
Php header()函数语法及使用代码
Nov 04 PHP
php截取中文字符串函数实例
Feb 23 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
深入了解PHP中的Array数组和foreach
Nov 06 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
PHP反射原理与用法深入分析
Sep 28 PHP
Laravel 创建指定表 migrate的例子
Oct 09 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
新52大事件
2020/03/03 欧美动漫
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
javascript生成大小写字母
2015/07/03 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
js实现日历的简单算法
2017/01/24 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
Python科学计算环境推荐——Anaconda
2014/06/30 Python
使用python实现BLAST
2018/02/12 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
PyTorch中permute的用法详解
2019/12/30 Python
python 进程池pool使用详解
2020/10/15 Python
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
Linux文件系统类型
2012/09/16 面试题
保护野生动物倡议书
2014/05/16 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
创业计划书之寿司
2019/07/19 职场文书
python执行js代码的方法
2021/05/13 Python
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android