继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

不羁这一生
关注TA
已关注
手记 27
粉丝 1
获赞 2

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

* 参数说明:

* 参数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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP