> php教程 > php手册 > 截取函数,中文一个,英文两个算一个

截取函数,中文一个,英文两个算一个

WBOY
풀어 주다: 2016-06-07 11:43:32
원래의
1639명이 탐색했습니다.

截取函数,中文一个,英文两个算一个
共享一个今天写的截取字符串函数,跟官方的不一样,用了你就知道/**<br> * 截取函数,中文一个,英文两个算一个<br> */<br> function mbsubstr($str, $start=0, $length, $suffix=true, $charset="utf-8") {<br>     $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";<br>     $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";<br>     $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";<br>     $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";<br>     preg_match_all($re[$charset], $str, $match);<br>     <br>     $strArr = $match[0];<br>     $str = array_values(tempStrArr($strArr));<br>     $strArrCount = count($str);<br>     if($strArrCount == $length+1){<br>         $length += 1;<br>     }<br>     <br>     $slice = implode('',array_slice($str,$start,$length));<br>     if($strArrCount > $length){<br>         return $suffix ? $slice.'...' : $slice;<br>     }else{<br>         return $slice;<br>     }<br> }<br> function tempStrArr($strArr){<br>     $e = range('a','z');<br>     $i = count($strArr);<br>     foreach($strArr as $k=>$v){<br>         if(in_array(strtolower($v), $e)){<br>             if(in_array(strtolower($strArr[$k+1]), $e)){<br>                 $strArr[$k] = $v.$strArr[$k+1];<br>                 unset($strArr[$k+1]);<br>                 break;<br>             }<br>         }elseif($v > 0 && $v  0 && $strArr[$k+1]              $strArr[$k] = $v.$strArr[$k+1];<br>             unset($strArr[$k+1]);<br>             break;<br>         }<br>         $i--;<br>     }<br>     if($i > 0){<br>         $strArr = tempStrArr($strArr);<br>     }<br>     <br>     return $strArr;<br> }共享这个代码。我总觉得哪里不对劲,有更好的思路的大神求思路



更多函数参见 http://chajiandaquan.com/function.html

AD:真正免费,域名+虚机+企业邮箱=0元

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿