摘要 腾兴网为您分享:php分割中英文字符串的几种方法,一起成长,想看视频,托迈酷客,天天向商等软件知识,以及jbookmaker,平差易,青岛地铁app,delphixe,趣医院,cs1.6,变声精灵,中国配货网,qq图标素材,闻思修,nameplate,认识水果,dedecms仿站教程,天正建筑,dos命令及用法等软件it资讯,欢迎关注腾兴网。对一段文字按照字数进行分割,因为文字中可能是中英文混合的,而php函数strlen只能计算出字串的字节数,于是自己实现了几个函数,分享下。 例1,计算字符总长度。 ?phpfunction ccStr...
对一段文字按照字数进行分割,因为文字中可能是中英文混合的,而php函数strlen只能计算出字串的字节数,于是自己实现了几个函数,分享下。
例1,计算字符总长度。
<?phpfunction ccStrLen($str) #计算中英文混合字符串的长度{$ccLen=0;$ascLen=strlen($str);$ind=0;$hasCC=ereg(”[xA1-xFE]“,$str); #判断是否有汉字$hasAsc=ereg(”[x01-xA0]“,$str); #判断是否有ASCII字符if($hasCC && !$hasAsc) #只有汉字的情况return strlen($str)/2;if(!$hasCC && $hasAsc) #只有Ascii字符的情况return strlen($str);for($ind=0;$ind<$ascLen;$ind++){if(ord(substr($str,$ind,1))>0xa0){$ccLen++;$ind++;}else{$ccLen++;}}return $ccLen;}?>
例2,从左侧截取字符串。
例3,把给定文字,按切割数量存入数组(适合短篇文字,长文章可没分隔一部分就直接处理一次)
<?phpfunction SplitContent($content,$smslen){$str_tmp=$content;$arr_cont=array();$len_tmp=0;$i=0;//分割绝对位置while (strlen($str_tmp)>0){$str_tmp=ccStrLeft($str_tmp,$smslen);array_push($arr_cont,$str_tmp);$i+=strlen($str_tmp);$str_tmp=substr($content,$i,strlen($content));}return $arr_cont;} //by ?>
测试:
<?php $str=’a计算中英文混合1234字符串的长度abcd’;echo $str.’的长度为:’.ccStrLen($str);echo ‘
’;$smslen=3;//截取长度print_r(SplitContent($str,$smslen));?>
分割结果:
Array
(
[0] => a计算
[1] => 中英文
[2] => 混合1
[3] => 234
[4] => 字符串
[5] => 的长度
[6] => abc
[7] => d
)
相关推荐