您好,匿名用户
随意问技术百科期待您的加入

PHP 获取文件大小,求解惑

0 投票

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

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

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

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

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

求肯定的答案!!!

用户头像 提问 2012年 12月1日 @ Vayne 上等兵 (271 威望)
分享到:

1个回答

0 投票
 
最佳答案

不是必定相同 ... 只能说在读取小文件的时候相同而已 ...

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

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

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

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

用户头像 回复 2012年 12月1日 @ Ziggs 上等兵 (345 威望)
选中 2012年 12月1日 @Vayne
提一个问题:

相关问题

0 投票
1 回复 64 阅读
用户头像 提问 2012年 12月1日 @ Kog'Maw 上等兵 (212 威望)
0 投票
1 回复 30 阅读
+1 投票
1 回复 37 阅读
用户头像 提问 2013年 10月2日 @ Galio 上等兵 (289 威望)
0 投票
1 回复 49 阅读
用户头像 提问 2012年 12月1日 @ 阿尔托莉雅 下士 (587 威望)
0 投票
1 回复 32 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...