1313use Toolkit \Stdlib \Str \Traits \StringCaseHelperTrait ;
1414use Toolkit \Stdlib \Str \Traits \StringCheckHelperTrait ;
1515use function array_map ;
16+ use function array_merge ;
1617use function array_slice ;
1718use function array_values ;
1819use function base64_encode ;
3637use function mb_strwidth ;
3738use function mb_substr ;
3839use function preg_match ;
40+ use function preg_match_all ;
3941use function preg_split ;
4042use function random_bytes ;
4143use 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