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
rss_feed