PHP preg_split 函數語法
array preg_split ( string $pattern , string $subject , int $limit , int $flags )
誠如第一段所說,PHP preg_split 函數比舊版的 split 函數多了一個參數,所以總共有四個參數可以設定,從左邊開始的第一個參數 $pattern 是要使用的正規表示語法,必要項目,第二個參數 $subject 是要被切割的字串,必要項目,第三個參數 $limit 則是用來設定要切割為多少個部份,剩餘的部份會在一起。第四個參數就是新增的,有以下幾種設定法。- PREG_SPLIT_NO_EMPTY - preg_split - 函式只會返回非空白的部分。
- PREG_SPLIT_DELIM_CAPTURE - preg_split - 函式會將字串中的正規表達式一起返回。(PHP 4.0.5 新增功能)
- PREG_SPLIT_OFFSET_CAPTURE - preg_split - 函式會將每個返回增加字串的偏移量。(PHP 4.3.0 新增功能)
PHP preg_split 函數範例
<?php
//根據空格切開
$NewString1 = preg_split("/[\s,]+/", "Today is holiday.");
print_r($NewString1);
echo '<br><br>';
//切成三個部份
$NewString2 = preg_split('//',"Today is holiday.",3);
print_r($NewString2);
echo '<br><br>';
//不限至切割部份
$NewString3 = preg_split('//',"Today is holiday.");
print_r($NewString3);
?>
範例的切割結果//根據空格切開
$NewString1 = preg_split("/[\s,]+/", "Today is holiday.");
print_r($NewString1);
echo '<br><br>';
//切成三個部份
$NewString2 = preg_split('//',"Today is holiday.",3);
print_r($NewString2);
echo '<br><br>';
//不限至切割部份
$NewString3 = preg_split('//',"Today is holiday.");
print_r($NewString3);
?>
Array ( [0] => Today [1] => is [2] => holiday. )
Array ( [0] => [1] => T [2] => oday is holiday. )
Array ( [0] => [1] => T [2] => o [3] => d [4] => a [5] => y [6] => [7] => i [8] => s [9] => [10] => h [11] => o [12] => l [13] => i [14] => d [15] => a [16] => y [17] => . [18] => )
範例總共有三筆 PHP preg_split 函數的切割結果,第一次切割時,我們使用了「/[\s,]+/」這樣的正規寫法,表示要從字串的空白處切割開來,第二次切割時使用兩個斜線「//」表示我們要將字元切開並限定只切成三個部份,第一個被切割出來並存放在陣列內的會是空白字元,這是 PHP preg_split 函數的預設效果,接著是英文字母 T,第三個部份則是剩餘的所有部份。Array ( [0] => [1] => T [2] => oday is holiday. )
Array ( [0] => [1] => T [2] => o [3] => d [4] => a [5] => y [6] => [7] => i [8] => s [9] => [10] => h [11] => o [12] => l [13] => i [14] => d [15] => a [16] => y [17] => . [18] => )
第三次使用 PHP preg_split 函數時,我們就沒有使用參數去限定要切割成幾個部份,所以 PHP preg_split 函數就把整個字串的每個字元都切割開來,全部儲存進 PHP Array 陣列中,可以注意到第一個與最後一個被切割出來的部份是空白字元。
更多字串切割函數