php 中文字符串截取子串

本函数可能理论上说有些不地道,把utf-8的中文字符和char一视同仁,都按长度为1计算

function string_substring($string,$start,$length) 
{ 
    $countstart=0; 
    $countlength=0; 
    $printstring=""; 
    for($i=0;$i<strlen($string);$i++) 
    { 
        while($countstart<$start) 
        { 
            $countstart++; 
            if(ord(substr($string,$i,1))>128) 
            { 
                $i+=3; 
            } 
            else
            { 
                $i++; 
            } 
        } 
        while($countlength<$length) 
        { 
            $countlength++; 
            if(ord(substr($string,$i,1))>128) 
            { 
                $printstring.=substr($string,$i,3); 
                $i+=3; 
            } 
            else
            { 
                $printstring.=substr($string,$i,1); 
                $i++; 
            } 
        } 
    } 
    return $printstring; 
}

示例:

echo string_substring(">>我是A一个兵",1,4);

显示:

>我是A

原文地址:https://www.cnblogs.com/frostbelt/p/2388750.html