Skip to content

Commit 6c549f1

Browse files
committed
upsome for string helper
1 parent ac73317 commit 6c549f1

File tree

1 file changed

+32
-16
lines changed

1 file changed

+32
-16
lines changed

src/Str/StringHelper.php

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Toolkit\Stdlib\Str\Traits\StringCaseHelperTrait;
1414
use Toolkit\Stdlib\Str\Traits\StringCheckHelperTrait;
1515
use function array_map;
16+
use function array_merge;
1617
use function array_slice;
1718
use function array_values;
1819
use function base64_encode;
@@ -36,6 +37,7 @@
3637
use function mb_strwidth;
3738
use function mb_substr;
3839
use function preg_match;
40+
use function preg_match_all;
3941
use function preg_split;
4042
use function random_bytes;
4143
use function str_pad;
@@ -70,9 +72,9 @@ abstract class StringHelper
7072
*
7173
* @return string
7274
*/
73-
public static function pad($str, int $padLen, string $padStr = ' ', int $padType = STR_PAD_RIGHT): string
75+
public static function pad($str, $padLen, string $padStr = ' ', int $padType = STR_PAD_RIGHT): string
7476
{
75-
return $padLen > 0 ? str_pad((string)$str, $padLen, $padStr, $padType) : $str;
77+
return $padLen > 0 ? str_pad((string)$str, (int)$padLen, $padStr, $padType) : (string)$str;
7678
}
7779

7880
/**
@@ -82,9 +84,9 @@ public static function pad($str, int $padLen, string $padStr = ' ', int $padType
8284
*
8385
* @return string
8486
*/
85-
public static function padLeft($str, int $padLen, string $padStr = ' '): string
87+
public static function padLeft($str, $padLen, string $padStr = ' '): string
8688
{
87-
return $padLen > 0 ? str_pad((string)$str, $padLen, $padStr, STR_PAD_LEFT) : $str;
89+
return $padLen > 0 ? str_pad((string)$str, (int)$padLen, $padStr, STR_PAD_LEFT) : (string)$str;
8890
}
8991

9092
/**
@@ -94,9 +96,9 @@ public static function padLeft($str, int $padLen, string $padStr = ' '): string
9496
*
9597
* @return string
9698
*/
97-
public static function padRight($str, int $padLen, string $padStr = ' '): string
99+
public static function padRight($str, $padLen, string $padStr = ' '): string
98100
{
99-
return $padLen > 0 ? str_pad((string)$str, $padLen, $padStr) : $str;
101+
return $padLen > 0 ? str_pad((string)$str, (int)$padLen, $padStr) : (string)$str;
100102
}
101103

102104
////////////////////////////////////////////////////////////////////////
@@ -109,8 +111,9 @@ public static function padRight($str, int $padLen, string $padStr = ' '): string
109111
* @param string $string
110112
* @return int
111113
*/
112-
public static function len(string $string): int
114+
public static function len($string): int
113115
{
116+
$string = (string)$string;
114117
if (false === $encoding = mb_detect_encoding($string, null, true)) {
115118
return strlen($string);
116119
}
@@ -124,9 +127,22 @@ public static function len(string $string): int
124127
*
125128
* @return int
126129
*/
127-
public static function strlen(string $str, string $encoding = 'UTF-8'): int
130+
public static function len2($str, string $encoding = 'UTF-8'): int
128131
{
129-
$str = html_entity_decode($str, ENT_COMPAT, 'UTF-8');
132+
$str = (string)$str;
133+
134+
return function_exists('mb_strlen') ? mb_strlen($str, $encoding) : strlen($str);
135+
}
136+
137+
/**
138+
* @param string $str
139+
* @param string $encoding
140+
*
141+
* @return int
142+
*/
143+
public static function strlen($str, string $encoding = 'UTF-8'): int
144+
{
145+
$str = html_entity_decode((string)$str, ENT_COMPAT, 'UTF-8');
130146

131147
return function_exists('mb_strlen') ? mb_strlen($str, $encoding) : strlen($str);
132148
}
@@ -135,12 +151,12 @@ public static function strlen(string $str, string $encoding = 'UTF-8'): int
135151
* @param string $string
136152
* @return int
137153
*/
138-
public static function utf8Len(string $string): int
154+
public static function utf8Len($string): int
139155
{
140156
// strlen: one chinese is 3 char.
141157
// mb_strlen: one chinese is 1 char.
142158
// mb_strwidth: one chinese is 2 char.
143-
return mb_strlen($string, 'utf-8');
159+
return mb_strlen((string)$string, 'utf-8');
144160
}
145161

146162
/**
@@ -170,7 +186,7 @@ public static function length(string $str): int
170186
return mb_strlen($str, 'utf-8');
171187
}
172188

173-
\preg_match_all('/./u', $str, $arr);
189+
preg_match_all('/./u', $str, $arr);
174190

175191
return count($arr[0]);
176192
}
@@ -196,7 +212,7 @@ public static function absLen(string $str): int
196212
return mb_strlen($str, 'utf-8');
197213
}
198214

199-
\preg_match_all('/./u', $str, $ar);
215+
preg_match_all('/./u', $str, $ar);
200216

201217
return count($ar[0]);
202218
}
@@ -215,7 +231,7 @@ public static function absLen(string $str): int
215231
*/
216232
public static function random(int $length, array $param = []): string
217233
{
218-
$param = \array_merge([
234+
$param = array_merge([
219235
'prefix' => '',
220236
'suffix' => '',
221237
'chars' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
@@ -426,7 +442,7 @@ public static function utf8SubStr(string $str, int $start = 0, int $end = null):
426442
}
427443

428444
$null = '';
429-
\preg_match_all('/./u', $str, $ar);
445+
preg_match_all('/./u', $str, $ar);
430446

431447
if (func_num_args() >= 3) {
432448
$end = func_get_arg(2);
@@ -460,7 +476,7 @@ public static function zhSubStr($str, $start = 0, $length = 0, $charset = 'utf-8
460476
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
461477
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
462478

463-
\preg_match_all($re[$charset], $str, $match);
479+
preg_match_all($re[$charset], $str, $match);
464480
if (count($match[0]) <= $length) {
465481
return $str;
466482
}

0 commit comments

Comments
 (0)