binaryPrefix = $useBinaryPrefix; } public function humanize(int $bytes, int $decimals = 2, bool $forceBinary = false): string { $bytesString = (string) $bytes; $factor = (int) floor((strlen($bytesString) - 1) / 3); $isBinary = $forceBinary ?: $this->binaryPrefix; $sizeDivider = $isBinary ? self::DIVIDER_BINARY : self::DIVIDER_COMMON; $maxSuffixIndex = count(self::SIZE_SUFFIXES) - 1; if ($maxSuffixIndex >= $factor) { $suffixIndex = $factor; } else { $suffixIndex = $maxSuffixIndex; } $suffix = self::SIZE_SUFFIXES[$suffixIndex]; return sprintf("%.{$decimals}f %s", $bytes / ($sizeDivider ** $suffixIndex), $suffix); } }