php 中文字串截取函數_PHP教程

來源:互聯網
上載者:User
下面這二款函數是二款雙位元組字元串截取函數,那就是針對中文字串截取了,好了第一款漢字中文截取函數是越級簡潔了,後一款複雜但考慮更多一些。

//php教程 中文字串截取函數
/*
下面這二款函數是二款雙位元組字元串截取函數,那就是針對中文字串截取了,好了第一款漢字中文截取函數是越級簡潔了,後一款複雜但考慮更多一些。
*/

function substr($str = '', $offset = 0, $len = 0){
$len || ($len = strlen($str));
preg_match_all('/./us', $str, $result);
return implode('', array_slice($result[0], $offset, $len));
}

//方法二

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);
}
}

?>


http://www.bkjia.com/PHPjc/444857.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444857.htmlTechArticle下面這二款函數是二款雙位元組字元串截取函數,那就是針對中文字串截取了,好了第一款漢字中文截取函數是越級簡潔了,後一款複雜但...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.