用于utf8编码的字符串截取的函数

发布时间:2021-01-09编辑:脚本学堂
用于utf8编码的字符串截取的函数:utf8_substr,有需要的朋友可以看看。

用于utf8编码的字符串截取的函数:utf8_substr,有需要的朋友可以看看。
 

复制代码 代码如下:

<?php
/*
 * 用于utf8编码的字符串截取
*/
function utf8_substr($str,$position,$length){
    $start_position = strlen($str);
    $start_byte = 0;
    $end_position = strlen($str);
    $count = 0;
    for($i = 0; $i < strlen($str); $i++){
        if($count >= $position && $start_position > $i){
            $start_position = $i;
            $start_byte = $count;
        }
        if(($count-$start_byte)>=$length) {
            $end_position = $i;
            break;
        }   
        $value = ord($str[$i]);
        if($value > 127){
            $count++;
            if($value >= 192 && $value <= 223) $i++;
            elseif($value >= 224 && $value <= 239) $i = $i + 2;
            elseif($value >= 240 && $value <= 247) $i = $i + 3;
            else die('Not a UTF-8 compatible string');
        }
        $count++;

    }
    return(substr($str,$start_position,$end_position-$start_position));
}
?>