从$utf8_string截取不大于$len字节的的字符串

函数功能:从$utf8_string截取不大于$len字节的的字符串

PHPChina 开源社区门户:jMPV&[b}5Lf%P
<?php
X [T'B3buHv31957
//函数功能:从$utf8_string截取不大于$len字节的的字符串
&L/zrX Ye(iU31957
function utf8_str_cut($utf8_string$len) {
-@f-tl2A+eU31957    
//
0H!m U:go*p/*Y31957    // 这个阵列是跟MB_STRING里面的libmbfl/filters/mbfilter_utf8.c借用的PHPChina 开源社区门户)z'?xqy#LPQ?
    
$mblen_table_utf8 = array(
J^/n G ` |wQ31957      
1111111111111111,
N"b+w+U+oh ov31957      
1111111111111111,
a4M"yr e4g6|5d31957      
1111111111111111,
F8_m.VqO`w31957      
1111111111111111,PHPChina 开源社区门户D8W3Q$?hS
      
1111111111111111,
k;N!A gej31957      
1111111111111111,
+D9R5A)fsM ZCk31957      
1111111111111111,
-L hn4A%w X5a9t31957      
1111111111111111,
w7nd%Ms!d6l31957      
1111111111111111,PHPChina 开源社区门户'{,oOo+C y%k"y
      
1111111111111111,
db)_v&UR?2u} U31957      
1111111111111111,
W"s u x{*yG? R N)r31957      
1111111111111111,PHPChina 开源社区门户D-tG yN$I B(g
      
2222222222222222,PHPChina 开源社区门户6s d*oP(}.h$R
      
2222222222222222,PHPChina 开源社区门户G*namh
      
3333333333333333,
L$M#J"M/i4p31957      
4444444455556611PHPChina 开源社区门户w_.l;od sd*U GD[
    
);PHPChina 开源社区门户 {2HUv7}
    
$str=“”;PHPChina 开源社区门户kD7[u5f1^1?9a*O
    for (
$i 0$i<strlen($utf8_string
_c7r&uO/J31957        && 
$i + ($utf8len $mblen_table_utf8[ord($utf8_string[$i])]) < $len; ) {PHPChina 开源社区门户.p*VS$M|1{
            
///////////解释原理/////////////////////
.C B-{*gR31957            // 获取第一个字的 ASCII 值PHPChina 开源社区门户6xD2gUf
            //$index   = ord($utf8_string[$i]);PHPChina 开源社区门户Kg#O|E-}
            // 获取对应的 UTF-8 的长度PHPChina 开源社区门户P}4Cw{B,uG6_|
            //$utf8len = $mblen_table_utf8[$index];
|~Z'wqN1c31957            ///////////解释结束/////////////////////
:Us5C M /9u1s!o31957            PHPChina 开源社区门户T XQk`3Tu6HE
            // 获取一个 UTF-8 的字PHPChina 开源社区门户3yL7x&K:tI } o3M
            
$word    substr($utf8_string$i$utf8len);PHPChina 开源社区门户+t!M4EB/X.A4E+/
            
$str .= $word;PHPChina 开源社区门户x�p.W#}e
            
$i      += $utf8len;
#K!_/Q~4/ U I9mxTu31957    }
h7t/el_!xH3z31957    return  
$str;
.bNZ"I4l31957}PHPChina 开源社区门户@~/vPG [ ]x&Bd
?>PHPChina 开源社区门户x"Vl'O4sk.C"|4~M'n

 

你可能感兴趣的:(从$utf8_string截取不大于$len字节的的字符串)