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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
PHP循环获取GET和POST值的代码
Apr 09 PHP
PHP XML备份Mysql数据库
May 27 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
JS 网站性能优化笔记
May 24 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
php实现图片转换成ASCII码的方法
Apr 03 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 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中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
python实现简易数码时钟
2021/02/19 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
安全检查管理制度
2014/02/02 职场文书
逃课上网检讨书
2014/02/20 职场文书
大课间活动实施方案
2014/03/06 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android