手记

[中英文字符串截取]php版本字符串截取方法

/* 函数功能说明:此函数用于截取中文字符串,函数以单个完整字符为单位进行截取,即一个英文字符和一个中文字符均表示一个单位长度

* 参数说明:

* 参数1:$string为要截取的字符串,

* 参数2:$start为欲截取的起始位置,

* 参数3:$length为要截取的字符个数(一个汉字或英文字符都算一个)

* 返回值说明:返回截取结果字符串

*/

function substr_cn($string_input,$start,$length)

{

$str_input=$string_input;

$len=$length;

$return_str="";

//定义空字符串

for ($i=0;$i<2*$len+2;$i++)

$return_str=$return_str." ";

$start_index=0;

//计算起始字节偏移量

for ($i=0;$i<$start;$i++)

{

if (ord($str_input{$start_index}>=161)) //是汉语

{

$start_index+=2;

}

else //是英文

{

$start_index+=1;

}

}

$chr_index=$start_index;

//截取

for ($i=0;$i<$len;$i++)

{

$asc=ord($str_input{$chr_index});

if ($asc>=161)

{

$return_str{$i}=chr($asc);

$return_str{$i+1}=chr(ord($str_input{$chr_index+1}));

$len+=1; //结束条件加1

$i++; //位置偏移量加1

$chr_index+=2;

continue;

}

else

{

$return_str{$i}=chr($asc);

$chr_index+=1;

}

}

return trim($return_str);

}//end of substr_cn


0人推荐
随时随地看视频
慕课网APP