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循环获取GET和POST值的代码
Apr 09 PHP
php中常用字符串处理代码片段整理
Nov 07 PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
深入PHP magic quotes的详解
Jun 17 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
PHP实现基于文本的摩斯电码生成器
Jan 11 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 PHP
PHP实现计算器小功能
Aug 28 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
php实现天干地支计算器示例
2014/03/14 PHP
PHP数组函数知识汇总
2016/05/12 PHP
基于php实现的验证码小程序
2016/12/13 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
基于php编程规范(详解)
2017/08/17 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
javascript 面向对象继承
2009/11/26 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
详解Python中for循环是如何工作的
2017/06/30 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
python IDLE添加行号显示教程
2020/04/25 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
店长职务说明书
2014/02/04 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
团员年度个人总结
2015/02/26 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
辛亥革命观后感
2015/06/02 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL