array preg_split(string pattern,string subject[,int limit[,int flags]])
返回一個數組,包含 subject 中沿著與 pattern 正則表達式來匹配的邊界所分割的子串.
如果指定了 limit,則最多返回 limit 個子串,如果 limit 是 -1,則意味著沒有限制,可以用來繼續指定可選參數 flags.
flags 可以是下列標記的任意組合(用按位或運算符 | 組合):
PREG_SPLIT_NO_EMPTY
如果設定了本標記,則 preg_split() 只返回非空的成分,看個實例:
- <?php
- $word_count = $word_length = 0;
- if ($fh = fopen('novel.txt','r')) {
- while (! feof($fh)) {
- if ($s = fgets($fh)) {
- $words = preg_split('/s+/',$s,-1,PREG_SPLIT_NO_EMPTY);
- foreach ($words as $word) {
- $word_count++;
- $word_length += strlen($word);
- }
- }
- }
- }
- print sprintf("The average word length over %d words is %.02f characters.",
- $word_count,
- $word_length/$word_count);
- ?>
PHP簡單應用:
- <?
- $user_info = "+J+++G+++++w";
- $fields = preg_split("/+{1,}/", $user_info);
- while ($x < sizeof($fields)) :
- print $fields[$x]. "<br>";
- $x++;
- endwhile;
- ?>
由于分割后變成了數組,所以我們要利用foreach 來遍歷輸出了:
- <?php
- $delimitedText = "+A+++G+++++++++++C";
- $fields = preg_split("/+{1,}/", $delimitedText);
- foreach($fields as $field) echo $field."<br />";
- ?>
- <?
- $text = "a, o, p";
- $fruitarray = preg_split( "/, | and /", $text );
- print "<pre>n";
- print_r( $fruitarray );
- print "</pre>n";
- ?>
新聞熱點
疑難解答