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