如何使用PHP切割汉字

  介绍

如何使用PHP切割汉字?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

具体如下:

& lt; PHP ?/*   @UTF-8编码的字符可能由1 ~ 3个字节组成。   *//* - - - - - - - - - - - - - - - - - - - - - - - - - - - -方法一截取中文字符串方法- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */function  msubstr (str美元,美元开始,len美元)   {   时间=美元才能tmpstr “,“;   时间=美元才能strlen  start 美元;+,len美元;   for 才能;($小姐:=,0;,美元小姐:& lt;, strlen;美元,美元我+ +),{   ,,,if (奥德(substr (str美元,,我,,1)),祝辞,0 xa0),,//奥德()函数返回字符串的第一个字符的ASCII值   ,,,{   ,,,,,tmpstr 美元。=,substr (str美元,,我,,2);   ,,,,,我+ +美元;   ,,,},{else    ,,,,,tmpstr 美元。=,substr (str美元,,我,,1);   ,,,}   ,,}   return 才能;tmpstr美元;   }/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - -第二种方法- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *///截取的是utf - 8字符串   function  utf_substr (str美元,,len美元)   {   时间=美元才能new_str  [];   for 才能;($小姐:=,0;,美元小姐:& lt;, len;美元,美元我+ +),{   ,,,tem_str 美元;=,substr (str美元,,0,,1);   ,,,if (奥德(tem_str 美元;祝辞,127)),{   ,,,,,我+ +美元;   ,,,,,if (美元小姐:& lt;, len美元),{   ,,,,,,,美元new_str [],=, substr (str美元,,0,,3);   ,,,,,,,str 美元;=,substr (str美元,,3);   ,,,,,}   ,,,},{else    ,,,,,美元new_str [],=, substr (str美元,,0,1);   ,,,,,str 美元;=,substr (str美元,,1);   ,,,}   ,,}   return 才能加入($ new_str);//join()函数把数组元素组合为一个字符串   }/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -第三种方法(utf - 8) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */function  cutstr(字符串,美元,美元的长度)   {   preg_match_all才能(“/[\ x01 - \ x7f] | | (\ xc2 - \ xdf) [\ x80 - \ xbf] | \ xe0 [\ xa0 - \ xbf] [\ x80 - \ xbf] | [\ xe1 - \ xef] [\ x80 - \ xbf] [\ x80 - \ xbf] | \ xf0 [\ x90 - \ xbf] [\ x80 - \ xbf] [\ x80 - \ xbf] | [\ xf1 - \ xf7] [\ x80 - \ xbf] [\ x80 - \ xbf] [\ x80 - \ xbf]/,,,字符串,美元,美元信息);   时间=美元才能wordscut “,“;   时间=美元才能j  0;   for 才能;($小姐:=,0;,美元小姐:& lt;, count ($ info[0]);,我+ +美元),{   ,,,wordscut 美元。=,美元信息[0][我]美元;   ,,,j 美元;=,奥德($ info [0] [$ i]),祝辞,127,?,j 美元;+,2,:,j 美元;+,1;   ,,,if  (j 美元;祝辞,length 美元;作用;3),{   ,,,,,return  wordscut 美元;只“……“   ,,,}   ,,}   return 才能;加入(& # 39;& # 39;,,美元信息[0]);   }   $ string =,“312年哈哈,这个组合很难切割哦“;   echo  cutstr(字符串,美元,10);/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -下面是曾经用过的截取第三个的字符串的- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *///,name1 美元;=,mysql_result (my_rst美元0“name");//,name 美元;=,preg_match (“/([1 - 9] [0 - 9] +)/? name1美元$ r);//,name 美元;=,$ r [0];//,如果(name 美元==,““){//,$ name=preg_replace (& # 39; # ^ (?: [\ x00 - \ x7F] | [\ xC0 - \ xFF] [\ x80 - \ xBF] +) {0, 2} & # 39;。//,& # 39;((?:[\ x00 - \ x7F] | [\ xC0 - \ xFF] [\ x80 - \ xBF] +) {0,1})。* # & # 39;,//,& # 39;& # 39;1美元,美元name1);//,}/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -第四种方法(utf - 8) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */function  cut_str (sourcestr美元,美元cutlength)   {   时间=美元才能returnstr  & # 39; & # 39;;   小姐:美元才能=,0;   时间=美元才能n  0;   时间=美元才能str_length  strlen ($ sourcestr);//字符串的字节数   while 才能;(n 美元;& lt;, cutlength 美元;,,,小姐:美元& lt;=, str_length美元),{   ,,,temp_str 美元;=,substr (sourcestr美元,,我,,1);   ,,,ascnum 美元;=,奥德($ temp_str);//得到字符串中第$ i位字符的ASCII码   ,,,if  (ascnum 美元;祝辞=,224),{   ,,,,,returnstr 美元;=,returnstr 美元;只substr (sourcestr美元,,我,,3);//根据utf - 8编码规范,将3个连续的字符计为单个字符   ,,,,,小姐:美元=,小姐:美元+,3;//实际字节记为3   ,,,,,$ n + +,//字串长度为1   ,,,},elseif  (ascnum 美元;祝辞=,192)//如果ASCII位高于192年   ,,,{   ,,,,,returnstr 美元;=,returnstr 美元;只substr (sourcestr美元,,我,,2);//根据utf - 8编码规范,将2个连续的字符记为单个字符   ,,,,,小姐:美元=,小姐:美元+,2;//实际字节记为2   ,,,,,$ n + +,//字串长度为1   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何使用PHP切割汉字