怎么在php中根据中文裁减字符串

介绍

怎么在php中根据中文裁减字符串?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

定义(字符集,& # 39;utf - 8 # 39;);//系统默认编码

/* *
*根据中文裁减字符串
* @param字符串-字符串
* @param长度-长度
* @param $ doc -缩略后缀
* @return返回带省略号被裁减好的字符串
*/
函数cutstr(字符串,长度,美元$点=& # 39;……& # 39;){
如果(strlen(字符串)& lt;=$长度){
返回$字符串;
}
$ pre=杆(1);
结束美元=杆(1);
$ string=str_replace(数组(& # 39;,& # 39;,& # 39;“& # 39;,& # 39;& lt; & # 39;, & # 39;祝辞& # 39;),数组($前。& # 39;,& # 39;。最后,之前的美元。& # 39;“& # 39;。最后,之前的美元。& # 39;& lt; & # 39;。最后,之前的美元。& # 39;祝辞& # 39;。结束),字符串美元);
$ strcut=& # 39; & # 39;;
如果(函数(字符集)==& # 39;utf - 8 # 39;){
n=tn=$美元noc=0;
, ($ n & lt;strlen ($ string)) {
$ t=奥德($ string [$ n]);
if ($ t==9 | | $ t==10 | | (32 & lt;=$ t,,t & lt;美元=126)){
tn=1美元;
$ n + +;
$ noc + +;
} elseif (194 & lt;=$ t,,t & lt;美元=223){
tn=2美元;
$ n +=2;
$ noc +=2;
} elseif (224 & lt;=$ t,,t & lt;美元=239){
tn=3美元;
$ n +=3;
$ noc +=2;
} elseif (240 & lt;=$ t,,t & lt;美元=247){
tn美元=4;
$ n +=4;
$ noc +=2;
} elseif (248 & lt;=$ t,,t & lt;美元=251){
tn=5美元;
$ n +=5;
$ noc +=2;
} elseif (t==252美元| | $ t==253) {
tn美元=6;
$ n +=6;
$ noc +=2;其他
} {
$ n + +;
}
如果(noc祝辞美元=$长度){
打破;
}
}
如果(noc比美元;$长度){
n -=tn美元;
}
$ strcut=substr ($ string, 0, $ n);其他
} {
($ i=0;美元我& lt;美元的长度;$我+ +){
strcut美元。=奥德($ string [$ i])的在127年?美元$ string[我]。字符串(+ + $ i):美元字符串($ i);
}
}
$ strcut=(数组大小写不敏感($前。& # 39;,& # 39;。最后,之前的美元。& # 39;“& # 39;。最后,之前的美元。& # 39;& lt; & # 39;。最后,之前的美元。& # 39;祝辞& # 39;。结束美元),数组(& # 39;,& # 39;,& # 39;“& # 39;,& # 39;& lt; & # 39;, & # 39;祝辞& # 39;),美元strcut);
$ pos=大小写敏感(strcut美元,(1)从而向);
if ($ pos !==false) {
$ strcut=substr (strcut美元,0,pos);
}
返回strcut美元。点美元;
}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

怎么在php中根据中文裁减字符串