对phpmb_strlenmb_substr

PHP函数strlen mbstring到mb_ K.:



如果(!function_exists('mb_strlen ')){

功能mb_strlen($文本编码,$){

如果($编码= = 'utf-8){

返回preg_match_all(%s(:

{ x09 x0a x0d X20 - x7e ASCII # }

{ XC2 - XDF } { X80 - XBF }非超长字节| #

xe0 { xA0 - XBF } { X80 - XBF }不包括overlongs | #

{ XE1 - XeF XEC夕} { X80 - XBF } { 2 }直| # 3字节

固定{ X9F } { X80 - X80 - XBF }不包括代理人| #

xf0 { X90 - XBF } { X80 - XBF } { 2 }面| # 1-3

| # { XF1 - xf3 } { X80 - XBF } { 3 }面4-15

| # 幅国土{ X80 - x8f } { X80 - XBF } { 2 }平面16

XS)%,$文本,美元);

其他{ }

返回strlen($文本);

}

}

}

从Internet作者未知。

如果(!function_exists('mb_substr ')){

功能mb_substr($str,美元开始,len =美元,美元=UTF-8编码){

为限制= strlen(str);



对于($ = 0;$开始> 0;;$开始找到真正的开始)

如果($ = $限制)

打破;



如果($str { }美元<= x7f )

++;

{其他

++



而($str { $ } > = X80$str { $ } 工具)

++;

}

}



如果($ = '')

返回substr($str,$ S);

其他的

对于($ = $ s;$ 0;;),找到真正的结束

如果($ = $限制)

打破;



如果($str { $ E } < = x7f )

+ e;

{其他

++;跳过长度



而($str { $ E } > = X80$str { $ E } 工具$ E $极限)

+ e;

}

}



返回substr($str,$,$ E $ S);

}

}