PHP 获取远程文件大小的3种解决方法

 更新时间:2013年07月11日 09:39:11   作者:  
以下是对PHP中获取远程文件大小的3种解决方法进行了详细的介绍,需要的朋友参考下
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获取二叉树镜像的方法

    这篇文章主要介绍了PHP获取二叉树镜像的方法,涉及php使用队列针对二叉树进行翻转的相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • PHP调用Linux的命令行执行文件压缩命令

    PHP调用Linux的命令行执行文件压缩命令

    一开始,我和普通青年一样,想到用PHP内置的 ZipArchive纠结的是环境上没安装zip扩展,想采用用PHP调用Linux的命令行 ,执行压缩命令,感兴趣的朋友可以了解下,希望本文对你有所帮助
    2013-01-01
  • php调整gif动画图片尺寸示例代码分享

    php调整gif动画图片尺寸示例代码分享

    这篇文章主要介绍了如何使用php调整gif动画图片尺寸,大家可以参考使用
    2013-12-12
  • PHP设计模式之委托模式定义与用法简单示例

    PHP设计模式之委托模式定义与用法简单示例

    这篇文章主要介绍了PHP设计模式之委托模式定义与用法,简单描述了委托模式的功能、定义与简单使用方法,需要的朋友可以参考下
    2018-08-08
  • php实现批量删除挂马文件及批量替换页面内容完整实例

    php实现批量删除挂马文件及批量替换页面内容完整实例

    这篇文章主要介绍了php实现批量删除挂马文件及批量替换页面内容的方法,涉及php文件与目录的遍历、查找以及字符串与数组的遍历与替换操作相关技巧,适用于utf-8编码环境,需要的朋友可以参考下
    2016-07-07
  • ThinkPHP5+PhpSpreadsheet实现批量导出数据

    ThinkPHP5+PhpSpreadsheet实现批量导出数据

    由于PHPExcel不再维护,所以建议使用PhpSpreadsheet来导出exlcel,但是PhpSpreadsheet由于是个新的类库,所以只支持PHP7.1及以上的版本,本文给大家介绍了ThinkPHP5+PhpSpreadsheet实现批量导出数据,需要的朋友可以参考下
    2024-10-10
  • php中JSON的使用方法

    php中JSON的使用方法

    json常用来作为数据交换的一种格式,和xml相比体积更小。缺点就是层级关系不明显不大容易被理解。php中生成json要借助array和json_encode,json_decode一起使用。越复杂的json嵌套的数组越多,下面我们来仔细探讨下这个问题。
    2015-04-04
  • PHP如何使用array_unshift()在数组开头插入元素

    PHP如何使用array_unshift()在数组开头插入元素

    这篇文章主要介绍了PHP如何使用array_unshift()在数组开头插入元素,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • PHP代码重构方法漫谈

    PHP代码重构方法漫谈

    这篇文章主要介绍了PHP代码重构方法,结合实例形式较为详细的分析了php代码重构的概念、原理、相关实现技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • 单台服务器的PHP进程之间实现共享内存的方法

    单台服务器的PHP进程之间实现共享内存的方法

    这篇文章主要介绍了单台服务器的PHP进程之间实现共享内存的方法,需要的朋友可以参考下
    2014-06-06

最新评论