完美截取子字符串,支持中文

CODE:
<?php
//截取子字符串,支持中文
//每个中文汉字看成一个字符
//echo string_substring("1A辽2B宁3C省4D抚5E顺6F市7G新8H宾9I县",4,5);
//会返回B宁3C省,位置从0开始
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+=2;
            }
            else
            {
                
$i++;
            }
        }
        while(
$countlength!=$length)
        {
            
$countlength++;
            if(
ord(substr($string,$i,1))>128)
            {
                
$printstring.=substr($string,$i,2);
                
$i+=2;
            }
            else
            {
                
$printstring.=substr($string,$i,1);
                
$i++;
            }
        }
    }
    return 
$printstring;
}
echo 
string_substring("1A辽2B宁3C省4D抚5E顺6F市7G新8H宾9I县",4,5);
?> 

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

95 − 93 =