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
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
zf框架db类的分页示例分享
Mar 14 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
Apr 20 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
Yii框架响应组件用法实例分析
Sep 04 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初学者的8点有效建议
2010/11/20 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
laravel安装和配置教程
2014/10/29 PHP
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python类定义和类继承详解
2015/05/08 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
python处理csv中的空值方法
2018/06/22 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
后勤采购员岗位职责
2013/12/19 职场文书
怎样写离婚协议书
2014/09/10 职场文书
安全隐患整改报告
2014/11/06 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书