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实现采集程序原理和简单示例代码
Mar 18 PHP
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
PHP中文件上传的一个问题
Sep 04 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
Jul 15 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php获取twitter最新消息的方法
Apr 14 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 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 setTime 设置当前时间的代码
2012/08/27 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
一起来写段JS drag拖动代码
2010/12/09 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
Python实现的爬虫功能代码
2017/06/24 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python pandas修改列属性的方法详解
2018/06/09 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
python中操作文件的模块的方法总结
2021/02/04 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
篮球社团活动总结
2014/06/27 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
服装店员工管理制度
2015/08/07 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书