PHP | filesize 函數
怎樣獲取文件大小並格式化輸出
最近更新時間 2021-01-05 15:58:09
filesize 函數獲取文件大小。
filesize() 函數獲取文件的大小。返回值為 int 類型。因為 PHP 的整數類型是有符號整型而且很多平臺使用 32 位整型,對 2GB 以上的文件,一些文件系統函數可能返回無法預期的結果。可通過 PHP_INT_MAX 常量查看當前系統支持的 int 最大值。
函數定義
filesize ( string $filename ) : int
// 源文件位於:ext/standard/filestat.c
# 函數定義
FileFunction(PHP_FN(filesize), FS_ATIME)
...
php_stat(filename, filename_len, funcnum, return_value);
...
參數
- checkfilename - 文件的路徑。
返回值
- checkint - 返回文件的大小,失敗時返回 false。
示例1: - 使用 filesize() 函數獲取文件大小。
<?php
/**
* PHP 使用 filesize() 函數獲取文件大小。
*
* @since Version 1.0.0
* @filesource
*/
// 文件大小
$fileSize = filesize('foo.txt');
echo $fileSize.PHP_EOL;
11
示例2: - 以 MB、GB 等友好方式輸出文件大小。
<?php
/**
* PHP 以 MB、GB 等友好方式輸出文件大小。
*
* @since Version 1.0.0
* @filesource
*/
// 格式化文件大小
function humanFilesize($bytes, $decimals = 2) {
$sz = 'BKMGTP';
$factor = floor((strlen($bytes) - 1) / 3);
$postfix = @$sz[$factor];
if($factor > 0) $postfix .= 'B';
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . $postfix;
}
// 文件大小
$fileSize = filesize('foo.txt');
echo humanFilesize($fileSize).PHP_EOL;
1.27MB