PHP 获取文件大小,求解惑

WBOY
Freigeben: 2016-06-06 20:52:20
Original
997 Leute haben es durchsucht

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

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

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

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

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

求肯定的答案!!!

回复内容:

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

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

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

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

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

求肯定的答案!!!

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

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

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

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

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

必定相同。(字数限制)

使用CURL发送head请求,只返回请求头信息,curl_getinfo可获取Content-Length参数

可以用stat函数,这个可以精确获取文件大小

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!