PHP マニュアル
前のページ |  | 次のページ

# split

(PHP 3, PHP 4, PHP 5)

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

## 説明

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

> ティップ: Perl 互換の正規表現構文を使用する preg_split() は、往々にして split() よりも速い代替案となります。 正規表現の威力が必要ないのであれば、explode() を使用するほうがより高速です。これは正規表現エンジンの オーバーヘッドを受けません。

文字列の配列を返します。配列の各要素は、大文字小文字を区別する正規表現 `pattern` により区切られた `string` 中の部分文字列です。 `limit` が指定された場合、返される配列には 最大 `limit` の要素が含まれます。この場合、 最後の要素には `string` の残りの部分が全て 入っています。エラーを生じた場合、split() は `FALSE` を返します。

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

例 1. split() の例

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

`pattern` が `n` 回 現れる場合、返される配列には、 ``n`+1` 個のアイテムが 含まれます。例えば、`pattern` が現れない場合、 1 個の要素のみを有する配列が返されます。もちろん、これは `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() あるいは str_split() の例を参照ください。

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

preg_split()、spliti()、 str_split()、 explode()、implode()、 chunk_split() および wordwrap() も参照ください。

前のページ | ホーム | 次のページ
eregi | 上に戻る | spliti