正規表現により文字列を分割し、配列に格納する

# split

(PHP 4, PHP 5)

split — 正規表現により文字列を分割し、配列に格納する

警告

この関数は PHP 5.3.0 で 非推奨 となり、 PHP 7.0.0 で 削除 されました。

この関数の代替として、これらが使えます。

- preg_split()
- explode()
- str_split()

### 説明

split ( string `$pattern` , string `$string` [, int `$limit` = -1 ] ) : array

`string` を、正規表現によって配列に分割します。

### パラメータ

`pattern`

  大文字小文字を区別する正規表現。

  正規表現で特殊文字とみなされる文字を分割したい場合、それらを まずエスケープする必要があります。split() (または他の正規表現関数に関して)の動作が何か変であると感じたならば、 PHP 配布ファイルの regex/ サブディレクトリにあるファイル regex.7 を読んでください。このファイルは man ページ形式となっており、読むには man /usr/local/src/regex/regex.7 のようにします。

`string`

  入力文字列。

`limit`

  `limit` が指定された場合、返される配列には 最大 `limit` の要素が含まれます。この場合、 最後の要素には `string` の残りの部分が全て 入っています。

### 返り値

文字列の配列を返します。配列の各要素は、大文字小文字を区別する正規表現 `pattern` により区切られた `string` 中の部分文字列です。

`pattern` が n 回 現れる場合、返される配列には、 n+1 個のアイテムが 含まれます。例えば、`pattern` が現れない場合、 1 個の要素のみを有する配列が返されます。もちろん、これは エラーを生じた場合、split() は `FALSE` を返します。

### 例

例1 split() の例

/etc/passwd の行から最初の 4 つのフィールドを 取り出すには、以下のようにします。

`<?php
list($user, $pass, $uid, $gid, $extra) =
split(":", $passwd_line, 5);
?>`

例2 split() の例

スラッシュ、ドット、ハイフンをデリミタとすると日付を処理する例を 以下に示します。

`<?php
// デリミタはスラッシュ、ドット、ハイフンのどれかです。
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>`

### 注意

ヒント

split() は PHP 5.3.0 以降で非推奨になりました。この関数のかわりに preg_split() を使うことを推奨します。 正規表現の威力が必要ないのであれば、explode() を使用するほうがより高速です。これは正規表現エンジンの オーバーヘッドを受けません。

ヒント

Perl の @chars = split('', $str) と同等の処理をする方法を知りたい場合は、 preg_split() あるいは str_split() の例を参照ください。

### 参考

- preg_split() - 正規表現で文字列を分割する
- spliti() - 大文字小文字を区別しない正規表現により文字列を分割し、配列に格納する
- str_split() - 文字列を配列に変換する
- explode() - 文字列を文字列により分割する
- implode() - 配列要素を文字列により連結する
- chunk_split() - 文字列をより小さな部分に分割する
- wordwrap() - 指定した文字数で文字列を分割する