- 论坛徽章:
- 0
|
- 传入的参数中,$str是被截取的字符串,$start是从第几个字符串开始截取,$lenth表示需要截取几个字符串(包括中文)
- function subString_UTF8($str, $start, $lenth)
-
{
-
$len = strlen($str);
-
$r = array();
-
$n = 0;
-
$m = 0;
-
for($i = 0; $i < $len; $i++) {
-
$x = substr($str, $i, 1);
-
$a = base_convert(ord($x), 10, 2);
-
$a = substr('00000000'.$a, -8);
-
if ($n < $start){
-
if (substr($a, 0, 1) == 0) {
-
}elseif (substr($a, 0, 3) == 110) {
-
$i += 1;
-
}elseif (substr($a, 0, 4) == 1110) {
-
$i += 2;
-
}
-
$n++;
-
}else{
-
if (substr($a, 0, 1) == 0) {
-
$r[ ] = substr($str, $i, 1);
-
}elseif (substr($a, 0, 3) == 110) {
-
$r[ ] = substr($str, $i, 2);
-
$i += 1;
-
}elseif (substr($a, 0, 4) == 1110) {
-
$r[ ] = substr($str, $i, 3);
-
$i += 2;
-
}else{
-
$r[ ] = '';
-
}
-
if (++$m >= $lenth){
-
break;
-
}
-
}
-
}
-
return $r;
-
} // End subString_UTF8;
|
|