substr() mb_substr() mb_subcut區別與聯繫
substr()
string:
輸入字符串。
start:
(1)爲非負數,返回的字符串將從 string
的 start
位置開始, 至字符串結尾
$rest = substr("abcdef", 1); //返回bcdef
(2)爲0,返回全字符串
$rest = substr("abcdef", 0); //返回abcdef
(3)爲負數,返回的字符串將從 string
結尾處向前數第 start
個字符開始,至字符串結尾
$rest = substr("abcdef", -1); // 返回 "f" $rest = substr("abcdef", -2); // 返回 "ef"
(4)如果 string
的長度小於或等於 start
,將返回 FALSE
。
length
(1)如果是正數,返回的字符串將從 start
處開始最多包括 length
個字符(取決於 string
的長度)。
$rest = substr("abcdef", 1,4); //bcde $rest = substr("abcdef", 1,5); //bcdef $rest = substr("abcdef", 1,6); //bcdef
(2)如果是 0,FALSE
、 NULL
,返回一個空字符串
(3)如果是負數,則意味從字符串尾部計數;也即返回的字符串爲從start開始至字符串結尾前|length|處,||表示絕對值。
如果 start
不在這段文本中,那麼將返回一個空字符串。
$rest = substr("abcdef", 0, -1); // 返回 "abcde" $rest = substr("abcdef", 2, -1); // 返回 "cde" $rest = substr("abcdef", 4, -4); // 返回 "" $rest = substr("abcdef", -3, -1); // 返回 "de"
mb_substr() mb_subcut
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
string mb_strcut ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
str:
從該 string 中提取子字符串。
start:
str
中要使用的第一個字符的位置。
length:
str
中要使用的最大字符數。 If omitted or NULL is passed, extract all characters to the end of the string.
encoding:
encoding
參數爲字符編碼。如果省略,則使用內部字符編碼。
mb_substr是按字符分割,而mb_strcut是按字節來分割,但是都不會產生半個字符的現象。
以設定字符串的編碼,但是 一般的服務器都沒打開php_mbstring.dll,需要在php.ini中把php_mbstring.dll打開。
echo mb_substr('我們都是好孩子hehe',0,9); //返回 我們都
echo mb_substr('我們都是好孩子hehe',0,9,'utf-8'); //返回 我們都是好孩子he
第一個是以三個字節爲一箇中文,這就是utf-8編碼的特點,下面加上utf-8字符集說明,所以,是以一個字爲單位來截取的