PHP中英文截取无乱码,包括全角下的字符
时间:2021-07-01 10:21:17
帮助过:29人阅读
代码出处: 小墨(自己)
符合UTF-8下,如果GBK下
改为
$content .= $str[$sing].$str[$sing+1];
$sing += 3; 改为 $sing += 2;
- /**
- * 中英文截取
- * @param string 要截取的字符串
- * @param string 要截取的长度(超过总长度 按总长度计算)
- * @param [string] (可选)开始位置(第一个为0)
- * @return string
- * @author 小墨 244349067@qq.com
- */
- function mixSubstr($str, $length, $start=FALSE)
- {
- if( ! $length){
- return false;
- }
-
- $strlen = strlen($str);
- $content = '';
- $sing = 0;
- $count = 0;
-
- if($length > $strlen) {
- $length = $strlen;
- }
- if($start >= $strlen) {
- return false;
- }
-
- while($length != ($count-$start))
- {
- if(ord($str[$sing]) > 0xa0) {
- if(!$start || $start <= $count) {
- $content .= $str[$sing].$str[$sing+1].$str[$sing+2];
- }
- $sing += 3;
- $count++;
- }else{
- if(!$start || $start <= $count) {
- $content .= $str[$sing];
- }
- $sing++;
- $count++;
- }
- }
- return $content;
- }
|