PHP | filesize 函数

Lasted 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