PHP 获取文件大小,求解惑

WBOY
リリース: 2016-06-06 20:52:20
オリジナル
995 人が閲覧しました

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

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

// 文件已经在内存中,用 strlen 计算长度
$content = file_get_contents($filename);
echo strlen($content);
ログイン後にコピー
ログイン後にコピー

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

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

求肯定的答案!!!

回复内容:

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

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

// 文件已经在内存中,用 strlen 计算长度
$content = file_get_contents($filename);
echo strlen($content);
ログイン後にコピー
ログイン後にコピー

疑惑的地方是:
我用 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函数,这个可以精确获取文件大小

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!