From 51ece8f88746f65acaf664ec6ec5b0e377936b9b Mon Sep 17 00:00:00 2001 From: sc0Vu Date: Fri, 29 Dec 2017 15:33:20 +0800 Subject: [PATCH] IntegerFormatter with length param. --- src/Formatters/Integer.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Formatters/Integer.php b/src/Formatters/Integer.php index fbf045f..597697d 100644 --- a/src/Formatters/Integer.php +++ b/src/Formatters/Integer.php @@ -25,10 +25,20 @@ class Integer implements IFormatter */ public static function format($value) { + $value = (string) $value; + $arguments = func_get_args(); + $digit = 64; + + if (isset($arguments[1]) && is_numeric($arguments[1])) { + $digit = intval($arguments[1]); + } $bn = Utils::toBn($value); $bnHex = $bn->toHex(true); $padded = mb_substr($bnHex, 0, 1); - - return implode('', array_fill(0, 64-mb_strlen($bnHex), $padded)) . $bnHex; + + if ($padded !== 'f') { + $padded = '0'; + } + return implode('', array_fill(0, $digit-mb_strlen($bnHex), $padded)) . $bnHex; } } \ No newline at end of file