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

# split

(PHP 3, PHP 4 , PHP 5)

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

## 説明

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

> 注意: Perl互換の正規表現構文を使用するpreg_split() は、往々にしてsplit()よりも速い代替案となりま す。

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

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

例 1. split()の例

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

> ティップ: `pattern`が`n`回現 れる場合、返される配列には、 ``n`+1`個のアイテムが 含まれます。例えば、`pattern`が現れない場合、 1個の要素のみを有する配列が返されます。もちろん、これは `string`が空の場合も同様です。

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

例 2. split()の例

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

`pattern` は大文字小文字を区別することに 注意してください。

正規表現の機能を必要としない場合、正規表現エンジンのオーバーヘッ ドがないexplode()の方がより高速であるというこ とに注意して下さい。

Perlの$chars = split('', $str)の動作を模擬する 手段を探しているユーザーについては、 preg_split()の例を参照下さい。

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

preg_split(), spliti(), explode(), implode(), chunk_split(), wordwrap()も 参照下さい。

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