<?php
/**
* 截取中文字符串
*@param str string 待截取的字符串
*@param start int 开始位置
*@param len int 长度
*@return 截取后的字符串
*/
function m_substr($str, $start, $len){
//$strlen存储字符串的总长度
$strlen = $start + $len;
for($i=0; $i<$strlen; $i++){
//如果字符串的首字符大于0xa0,表明是汉字
if(ord(substr($str, $i, 1) > 0xa0)){
//每次取出2个字符赋值给tmpstr ,表示为汉字
$tmpstr .= substr($str, $i, 2);
$i++;
}else{
$tmpstr .= substr($str, $i, 1);
}
}
return $tmpstr;
}
/**
* 截取中文字符串
*@param str string 待截取的字符串
*@param len int 长度
*@param start=0 int 开始位置
*@return 截取后的字符串
*/
function mm_substr($str,$len,$start=0){
$strlen = strlen($str);
for($i=0; $i<$strlen; $i++){
if($i>=$start && $i<($start+$len)){
if(ord(substr($str, $i, 1)) > 0xa0){
$tmpstr .= substr($str, $i, 2);
}else{
$tmpstr .= substr($str, $i, 1);
}
}
}
if(strlen($tmpstr) > $len){
$len--;
return mm_substr($str, $len, $start);
}
return $tmpstr;
}
$str = "我是china中国人,欢迎您来到这儿";
echo m_substr($str,1,7);
echo "<br>";
echo mm_substr($str,7);
?>