substr();mb_substr();mb_subcut的區別以及實踐

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)如果是 0FALSE 、 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字符集說明,所以,是以一個字爲單位來截取的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章