php截取字符串出现乱码的解决方法:可以利用ASCII编码和中文编码的二进制范围不一致的特点将它们区分开来,然后通过substr()函数进一步截取字符串即可。
解决思路:
利用ASCII编码和中文编码的二进制范围不一致而把它们区分开来,然后,通过substr()截取字符串的函数实现的。
(推荐教程:php视频教程)
代码如下:
注意:这里只针对utf-8编码
=$length){ return $str; } //初始化,统计字符串的个数, $count = 0; for($i=0;$i<$length;$i++){ //达到个数跳出循环,$i即为要截取的长度 if($count == $len){ break; } $count++; //ord函数是获取字符串的ASCII编码,大于等于十六进制0x80的字符串即为中文字符串 if(ord($str{$i}) >= 0x80){ $i +=2;//中文编码的字符串的长度再加2 } } //如果要截取的个数超过了字符串的总个数,那么我们返回全部字符串,不带省略号 if($len > $count){ return $str; }else{ return substr($str,0,$i).'...'; } }
相关推荐:php培训
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!