龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP中英文截取无乱码,包括全角下的字符

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
代码出处: 小墨(自己) br / 符合UTF-8下,如果GBK下 br / 改为 span$content .= $str[$sing].$str[$sing+1];/span br / $sing += 3; 改为 $sing += 2; span/span br / span/span
代码出处: 小墨(自己)
符合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;
}
精彩图集

赞助商链接