自己寫的php中文截取函數(shù)mb_strlen和mb_substr
眾所周知,php 自帶的 strlen 與 substr 函數(shù)沒法處理中文字符,于是,我們會用 mb_ 系列函數(shù)替代。但是,沒有 mbstring 庫怎么辦?這就需要我們自己寫一個來替代了,廢話不多說,先上代碼:
if ( !function_exists('mb_strlen') ) {
function mb_strlen ($text, $encode) {
if ($encode=='UTF-8') {
return preg_match_all('%(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)%xs',$text,$out);
}else{
return strlen($text);
}
}
}
/* from Internet, author unknown */
if (!function_exists('mb_substr')) {
function mb_substr($str, $start, $len = '', $encoding="UTF-8"){
$limit = strlen($str);
for ($s = 0; $start > 0;--$start) {// found the real start
if ($s >= $limit)
break;
if ($str[$s] <= "\x7F")
++$s;
else {
++$s; // skip length
while ($str[$s] >= "\x80" && $str[$s] <= "\xBF")
++$s;
}
}
if ($len == '')
return substr($str, $s);
else
for ($e = $s; $len > 0; --$len) {//found the real end
if ($e >= $limit)
break;
if ($str[$e] <= "\x7F")
++$e;
else {
++$e;//skip length
while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit)
++$e;
}
}
return substr($str, $s, $e - $s);
}
}
- PHP字符串長度計算 - strlen()函數(shù)使用介紹
- php中計算中文字符串長度、截取中文字符串的函數(shù)代碼
- php自定義函數(shù)實現(xiàn)統(tǒng)計中文字符串長度的方法小結(jié)
- 最準(zhǔn)確的php截取字符串長度函數(shù)
- 利用PHP函數(shù)計算中英文字符串長度的方法
- PHP中preg_match函數(shù)正則匹配的字符串長度問題
- php strlen mb_strlen計算中英文混排字符串長度
- 詳解PHP中strlen和mb_strlen函數(shù)的區(qū)別
- 淺析PHP中strlen和mb_strlen的區(qū)別
- PHP中strlen()和mb_strlen()的區(qū)別淺析
- php中strlen和mb_strlen用法實例分析
- php常用字符串長度函數(shù)strlen()與mb_strlen()用法實例分析
相關(guān)文章
針對多用戶實現(xiàn)頭像上傳功能PHP代碼 適用于登陸頁面制作
這篇文章主要為大家詳細(xì)介紹了針對多用戶實現(xiàn)頭像上傳功能PHP代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08
yii框架通過控制臺命令創(chuàng)建定時任務(wù)示例
這篇文章主要介紹了yii框架通過控制臺命令創(chuàng)建定時任務(wù)示例,需要的朋友可以參考下2014-04-04
Yii 2.0實現(xiàn)聯(lián)表查詢加搜索分頁的方法示例
這篇文章主要給大家介紹了關(guān)于利用Yii 2.0實現(xiàn)聯(lián)表查詢加搜索分頁的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08

