开发者社区> 问答> 正文

PHP 获取文件大小的解惑

假设,我有一个文件: file.zip

// 用 filesize 获取文件大小
$filename = 'file.zip';
echo filesize($filename);

// 文件已经在内存中,用 strlen 计算长度
$content = file_get_contents($filename);
echo strlen($content);

疑惑的地方是:
我用 strlen 计算已经读到内存中的文件的长度 是否 和用 filesize 获取文件长度 必定 相同?

我现在试了几个文件都是相同的,但是,不敢确定是否一定会是相同的。

求肯定的答案!!!

展开
收起
小旋风柴进 2016-06-08 17:30:14 1993 0
1 条回答
写回答
取消 提交回答
  • 不是必定相同 ... 只能说在读取小文件的时候相同而已 ...

    filesize() 函数在部分 x86 系统上读取大于 2GB 的文件会返回错误的值 ...

    file_get_contents 的长度则是正确的 ... 但 php 的变量长度受到内存的制约 ...

    如果试图用 file_get_contents 读取一个超过 php memory limit 的文件 ...

    则会触发一个 PHP Fatal Error ... 导致整个程序运行中止无结果返回 ...

    2019-07-17 19:32:25
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载