《PHP實例:自己寫的php中文截取函數mb_strlen和mb_substr》要點:
本文介紹了PHP實例:自己寫的php中文截取函數mb_strlen和mb_substr,希望對您有用。如果有疑問,可以聯系我們。
眾所周知,php 自帶的 strlen 與 substr 函數沒法處理中文字符,于是,我們會用 mb_ 系列函數替代.但是,沒有 mbstring 庫怎么辦?這就需要我們本身寫一個來替代了,廢話不多說,先上代碼:PHP應用
/* 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利用
維易PHP培訓學院每天發布《PHP實例:自己寫的php中文截取函數mb_strlen和mb_substr》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。