13
13
use Toolkit \Stdlib \Str \Traits \StringCaseHelperTrait ;
14
14
use Toolkit \Stdlib \Str \Traits \StringCheckHelperTrait ;
15
15
use function array_map ;
16
+ use function array_merge ;
16
17
use function array_slice ;
17
18
use function array_values ;
18
19
use function base64_encode ;
36
37
use function mb_strwidth ;
37
38
use function mb_substr ;
38
39
use function preg_match ;
40
+ use function preg_match_all ;
39
41
use function preg_split ;
40
42
use function random_bytes ;
41
43
use function str_pad ;
@@ -70,9 +72,9 @@ abstract class StringHelper
70
72
*
71
73
* @return string
72
74
*/
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
74
76
{
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 ;
76
78
}
77
79
78
80
/**
@@ -82,9 +84,9 @@ public static function pad($str, int $padLen, string $padStr = ' ', int $padType
82
84
*
83
85
* @return string
84
86
*/
85
- public static function padLeft ($ str , int $ padLen , string $ padStr = ' ' ): string
87
+ public static function padLeft ($ str , $ padLen , string $ padStr = ' ' ): string
86
88
{
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 ;
88
90
}
89
91
90
92
/**
@@ -94,9 +96,9 @@ public static function padLeft($str, int $padLen, string $padStr = ' '): string
94
96
*
95
97
* @return string
96
98
*/
97
- public static function padRight ($ str , int $ padLen , string $ padStr = ' ' ): string
99
+ public static function padRight ($ str , $ padLen , string $ padStr = ' ' ): string
98
100
{
99
- return $ padLen > 0 ? str_pad ((string )$ str , $ padLen , $ padStr ) : $ str ;
101
+ return $ padLen > 0 ? str_pad ((string )$ str , ( int ) $ padLen , $ padStr ) : ( string ) $ str ;
100
102
}
101
103
102
104
////////////////////////////////////////////////////////////////////////
@@ -109,8 +111,9 @@ public static function padRight($str, int $padLen, string $padStr = ' '): string
109
111
* @param string $string
110
112
* @return int
111
113
*/
112
- public static function len (string $ string ): int
114
+ public static function len ($ string ): int
113
115
{
116
+ $ string = (string )$ string ;
114
117
if (false === $ encoding = mb_detect_encoding ($ string , null , true )) {
115
118
return strlen ($ string );
116
119
}
@@ -124,9 +127,22 @@ public static function len(string $string): int
124
127
*
125
128
* @return int
126
129
*/
127
- public static function strlen ( string $ str , string $ encoding = 'UTF-8 ' ): int
130
+ public static function len2 ( $ str , string $ encoding = 'UTF-8 ' ): int
128
131
{
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 ' );
130
146
131
147
return function_exists ('mb_strlen ' ) ? mb_strlen ($ str , $ encoding ) : strlen ($ str );
132
148
}
@@ -135,12 +151,12 @@ public static function strlen(string $str, string $encoding = 'UTF-8'): int
135
151
* @param string $string
136
152
* @return int
137
153
*/
138
- public static function utf8Len (string $ string ): int
154
+ public static function utf8Len ($ string ): int
139
155
{
140
156
// strlen: one chinese is 3 char.
141
157
// mb_strlen: one chinese is 1 char.
142
158
// mb_strwidth: one chinese is 2 char.
143
- return mb_strlen ($ string , 'utf-8 ' );
159
+ return mb_strlen (( string ) $ string , 'utf-8 ' );
144
160
}
145
161
146
162
/**
@@ -170,7 +186,7 @@ public static function length(string $str): int
170
186
return mb_strlen ($ str , 'utf-8 ' );
171
187
}
172
188
173
- \ preg_match_all ('/./u ' , $ str , $ arr );
189
+ preg_match_all ('/./u ' , $ str , $ arr );
174
190
175
191
return count ($ arr [0 ]);
176
192
}
@@ -196,7 +212,7 @@ public static function absLen(string $str): int
196
212
return mb_strlen ($ str , 'utf-8 ' );
197
213
}
198
214
199
- \ preg_match_all ('/./u ' , $ str , $ ar );
215
+ preg_match_all ('/./u ' , $ str , $ ar );
200
216
201
217
return count ($ ar [0 ]);
202
218
}
@@ -215,7 +231,7 @@ public static function absLen(string $str): int
215
231
*/
216
232
public static function random (int $ length , array $ param = []): string
217
233
{
218
- $ param = \ array_merge ([
234
+ $ param = array_merge ([
219
235
'prefix ' => '' ,
220
236
'suffix ' => '' ,
221
237
'chars ' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '
@@ -426,7 +442,7 @@ public static function utf8SubStr(string $str, int $start = 0, int $end = null):
426
442
}
427
443
428
444
$ null = '' ;
429
- \ preg_match_all ('/./u ' , $ str , $ ar );
445
+ preg_match_all ('/./u ' , $ str , $ ar );
430
446
431
447
if (func_num_args () >= 3 ) {
432
448
$ end = func_get_arg (2 );
@@ -460,7 +476,7 @@ public static function zhSubStr($str, $start = 0, $length = 0, $charset = 'utf-8
460
476
$ re ['gbk ' ] = "/[ \x01- \x7f]|[ \x81- \xfe][ \x40- \xfe]/ " ;
461
477
$ re ['big5 ' ] = "/[ \x01- \x7f]|[ \x81- \xfe]([ \x40- \x7e]| \xa1- \xfe])/ " ;
462
478
463
- \ preg_match_all ($ re [$ charset ], $ str , $ match );
479
+ preg_match_all ($ re [$ charset ], $ str , $ match );
464
480
if (count ($ match [0 ]) <= $ length ) {
465
481
return $ str ;
466
482
}
0 commit comments