php的mbstring擴充模組提供了多位元組字元的處理能力,平常最常用的就是用mbstring來切分多位元組的中文字元,這樣可以避免出現半個字元的情況,由於是php的擴充,它的效能也要比一些自訂的多位元組切分函數要好上一些。
mbstring extension提供了幾個功能類似的函數,mb_substr和mb_strcut,看看手冊上對它們的解釋。
mb_substr
mb_substr() returns the portion of str specified by the start and length parameters.
mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.
mb_strcut
mb_strcut() returns the portion of str specified by the start and length parameters.
mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.
It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.
舉個例子來說,有一段文字, 分別用mb_substr和mb_strcut來做切分:
PLAIN TEXT
CODE:
<?php
$str = '我是一串比較長的中文-www.webjx.com';
echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');
echo "<br>";
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>
輸出結果如下:
mb_substr:我是一串比較
mb_strcut:我是