Functionsubstr_len ($ str, $ len, $ charset & #39; UTF-8 & #39;) {$ lenintval ($ len); if (! Is_numeric ($ len) | $ len & lt; 0) {returnfalse;} $ str_lenstrlen ($ str); if ($ len & gt; $ str_len) {return $ str;} if ($ charset & #39; UTF-8 & #39;) {$ char_step3;} e utf-8php
Function substr_len ($ str, $ len, $ charset = 'utf-8 '){
$ Len = intval ($ len );
If (! Is_numeric ($ len) | $ len <0 ){
Return false;
}
$ Str_len = strlen ($ str); if ($ len >=$ str_len) {return $ str;} if ($ charset = 'utf-8 ') {$ char_step = 3;} else {$ char_step = 2;} $ substr_ I = 0; // capture length $ act_substr = 0; for ($ I = 0; $ I <$ str_len; $ I ++) {if ($ substr_ I >=$ len) {break;} $ sub_val = substr ($ str, $ I, 1 ); if (ord ($ sub_val)> 0xa0) {$ I + = $ char_step-1; $ act_substr + = $ char_step;} else {$ act_substr ++ ;} $ substr_ I ++ ;}$ result_str = substr ($ str, 0, $ act_substr); return $ result_str;
}