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完整的日历类(CLASS)
Nov 27 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
$_GET['goods_id']+0 的使用详解
Jun 06 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
php另类上传图片的方法(PHP用Socket上传图片)
Oct 30 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
php微信开发之谷歌测距
Jun 14 PHP
PDO实现学生管理系统
Mar 21 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
PHP6 mysql连接方式说明
2009/02/09 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
php命名空间学习详解
2014/02/27 PHP
PHPThumb图片处理实例
2014/05/03 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
没编程基础可以学python吗
2020/06/17 Python
opencv 阈值分割的具体使用
2020/07/08 Python
Python如何定义一个函数
2015/09/01 面试题
外企财务年会演讲稿
2014/01/03 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
jQuery实现影院选座订座效果
2021/04/13 jQuery
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript