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作的文本留言本的例子(一)
Oct 09 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
显示程序执行时间php函数代码
Aug 29 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
Laravel框架使用Redis的方法详解
May 30 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
php curl操作API接口类完整示例
May 21 PHP
如何判断微信付款码和支付宝付款码
Apr 01 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
理解Javascript_10_对象模型
2010/10/16 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
小程序实现多列选择器
2019/02/15 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
Python实现多线程抓取妹子图
2015/08/08 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python自定义线程池实现方法分析
2018/02/07 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
诚信考试承诺书
2014/03/27 职场文书
三十年同学聚会感言
2015/07/30 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers