问题描述
- 关于PHP截取中英文字符串的几个问题
-
function substr_len($str, $len, $charset='utf-8'){
$len = intval($len);
if(!is_numeric($len) || $len < 0){
return false;
}$str_len = strlen($str); if($len >= $str_len){ return $str; } if($charset == 'utf-8'){ $char_step = 3; }else{ $char_step = 2; } $substr_i = 0;//截取长度 $act_substr = 0; for($i = 0; $i < $str_len; $i++){ if($substr_i >= $len){ break; } $sub_val = substr($str, $i, 1); if(ord($sub_val) > 0xa0){ $i += $char_step - 1; $act_substr += $char_step; }else{ $act_substr ++; } $substr_i++; } $result_str = substr($str, 0, $act_substr); return $result_str;
}
解决方案
http://www.jb51.net/article/28864.htm
解决方案二:
php混合字符串长度和截取 中英文
解决方案三:
推荐mb_substr
时间: 2024-10-31 19:13:40