chrisullyott/php-filesize

轻松计算文件大小并在单位之间进行转换。

v4.2.1 2021-10-17 22:52 UTC

README

Latest Stable Version Total Downloads

php-filesize

一个灵活的文件大小处理和单位转换的包。

安装

将其包含在项目中,或者使用 Composer 进行安装

$ composer require chrisullyott/php-filesize

实例化

在创建和其方法中,FileSize 对象理解几乎任何数据大小的表达方式。您可以使用大小来实例化它,或者最初将其留空。

use ChrisUllyott\FileSize;

$size = new FileSize('500 GB');

单位转换

使用 as() 将大小导出为另一种格式。

echo $size->as('MB'); // 512000

这里也支持各种文件大小字符串。

echo $size->as('megabytes'); // 512000

第二个参数指定小数精度(默认为 2)。

echo $size->as('TB', 3); // 0.488

用户友好的格式化

使用 asAuto() 获取用户友好的字符串

$size = new FileSize('1234522678.12 KB');

echo $size->asAuto(); // '1.15 TB'

可选的,asAuto() 还提供了小数精度。

$size = new FileSize('1234522678.12 KB');

echo $size->asAuto(5); // '1.14974 TB'

或者,简单地使用 echo 对象以实现相同的功能

echo $size; // '1.15 TB'

修改大小

要修改,请使用 add()subtract()multiplyBy()divideBy()

$size = new FileSize('4 GB');

$size->add('2G')
     ->subtract('1 gigabytes')
     ->multiplyBy(4)
     ->divideBy(2);

echo $size; // '10.00 GB'

支持负值。在下面的示例中,减去了 1.2 兆字节

$size->add('-1.2mb');

您也可以使用数组的值与 add()subtract() 一起使用

$size->add(['50mb', '140mb', '1.2mb']);

数字基数

构造函数的第二个参数是数字基数,它接受 2(二进制)或 10(十进制)。我们默认使用二进制。要处理十进制大小

$size = new FileSize(10921134, 10);

echo $size; // '10.92 MB'

小数分隔符

构造函数的第三个参数是小数分隔符,默认为点 .。在这里,您可以使用逗号代替。所选的小数分隔符将用于正确解析数字,并在输出时格式化它们。

$size = new FileSize('1.234.522.678,12 KB', 2, ',');

echo $size; // '1,15 TB'