|
|
@@ -272,18 +272,19 @@ class BaseService
|
|
|
|
|
|
public static function hideMiddleDigits($number, $hideCount = 4) {
|
|
|
$length = strlen($number);
|
|
|
-
|
|
|
- if ($length <= $hideCount + 2) {
|
|
|
- // 如果数字太短,直接返回全部星号或部分隐藏
|
|
|
- return substr($number, 0, 2) . str_repeat("*", $length - 2);
|
|
|
+
|
|
|
+ if ($length <= $hideCount) {
|
|
|
+ // 数字太短,全部隐藏
|
|
|
+ return str_repeat("*", $length);
|
|
|
}
|
|
|
-
|
|
|
- // 计算前后保留的位数
|
|
|
- $keepEachSide = floor(($length - $hideCount) / 2);
|
|
|
-
|
|
|
- $start = substr($number, 0, $keepEachSide);
|
|
|
- $end = substr($number, -$keepEachSide);
|
|
|
-
|
|
|
+
|
|
|
+ // 计算中间开始隐藏的位置
|
|
|
+ $startLen = floor(($length - $hideCount) / 2);
|
|
|
+ $endLen = $length - $hideCount - $startLen;
|
|
|
+
|
|
|
+ $start = substr($number, 0, $startLen);
|
|
|
+ $end = substr($number, -$endLen);
|
|
|
+
|
|
|
return $start . str_repeat("*", $hideCount) . $end;
|
|
|
}
|
|
|
|