php截取中文字符串

乱编乱写 3446 Views 0 Comments

在使用php截取字符串的时候

发现php原生函数substr是不支持截取中文字符串的

以下代码可以解决php截取中文字符串出现的乱码及各类问题

截取GB2312中文字符串

<?php
//截取中文字符串
function mysubstr($str, $start, $len){
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++){
if(ord(substr($str, $i, 1)) > 0xa0){
$tmpstr .= substr($str, $i, 2);
$i++;
}else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
?> 

截取utf8编码的多字节字符串

 <?php
//截取utf8字符串
function utf8Substr($str, $from, $len){
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?> 

标签: PHP,

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
loading