split

(PHP 3, PHP 4, PHP 5)

split -- 用正則表達式將字串分割到陣列中

說明

array split ( string pattern, string string [, int limit] )

提示: preg_split() 函數使用了 Perl 相容正則表達式語法,通常是比 split() 更快的替代專案。若果不需要正則表達式的威力,則使用 explode() 更快,這樣就不會招致正則表達式引擎的浪費。

本函數返回一個字串陣列,每個單元為 string 經區分大小寫的正則表達式 pattern 作為邊界分割出的子串。若果設定了 limit,則返回的陣列最多包括 limit 個單元,而其中最後一個單元包括了 string 中剩餘的所有部分。若果出錯,則 split() 返回 FALSE

/etc/passwd 中的前四個欄位分割出來:

例子 1. split() 例子

<?php
list($user$pass$uid$gid$extra) =
    
split (":"$passwd_line5);
?>

若果字串中有 n 個與 pattern 符合的項目,則返回的陣列將包括 n+1 個單元。例如,若果沒有找到 pattern,則會返回一個只有一個單元的陣列。當然,若果 string 為空也是這樣。

解析可能用斜線,點,或橫線分割的日期:

例子 2. split() 例子

<?php
// 分隔設定可以是斜線,點,或橫線
$date "04/30/1973";
list(
$month$day$year) = split ('[/.-]'$date);
echo 
"Month: $month; Day: $day; Year: $year<br />\n";
?>

想倣傚 Perl 中類似的 @chars = split('', $str) 行為,請參考 preg_split() 函數中的例子。

注意 pattern 是一個正則表達式。若果想要用的分割字元是正則表達式中的特殊字元,要先將其轉義。若果覺得 split()(或其它任何 regex 函數)行為古怪的話,請閱讀包括在 PHP 發行包中 regex/ 子目錄下的 regex.7 檔案。該檔案是手冊頁面格式,可以用類似 man /usr/local/src/regex/regex.7 的指令來閱讀。

參見 preg_split()spliti()explode()implode()chunk_split()wordwrap()