我已经开始了一个名为Big FileTools的项目。它被证明可以在Linux,Mac和Windows(甚至32位变体)上运行。即使对于大文件(>4GB),它也可以提供字节精确的结果。在内部,它使用积木/数学 -任意精度算术库。
使用composer安装它。
composer install jkuchar/BigFileTools
并使用它:
<?php$file = BigFileToolsBigFileTools::createDefault()->getFile(__FILE__);echo $file->getSize() . " bytesn";
结果是BigInteger,因此您可以计算结果
$sizeInBytes = $file->getSize();$sizeInMegabytes = $sizeInBytes->toBigDecimal()->dividedBy(1024*1024, 2, BrickMathRoundingMode::HALF_DOWN); echo "Size is $sizeInMegabytes megabytesn";
大文件工具内部使用驱动程序来可靠地确定所有平台上的确切文件大小。这是可用的驱动程序列表(2016年2月5日更新)
| Driver| Time (s) ↓ | Runtime requirements | Platform | --------------- | ------------------- | -------------- | ---------| CurlDriver | 0.00045299530029297 | CURL extension | -| NativeSeekDriver | 0.00052094459533691 | - | -| ComDriver | 0.0031449794769287 | COM+.NET extension | Windows only| ExecDriver | 0.042937040328979 | exec() enabled | Windows, Linux, OS X| NativeRead | 2.7670161724091 | - | -
您可以将BigFileTools与以下任何一种配合使用,或者默认情况下选择的是最快的(
BigFileTools::createDefault())
use BigFileToolsBigFileTools; use BigFileToolsDriver; $bigFileTools = new BigFileTools(new DriverCurlDriver());



