A15115071701 2015-09-20 12:12 采纳率: 50%
浏览 1447

关于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;

}

  • 写回答

2条回答 默认 最新

  • devmiao 2015-09-20 14:55
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?