split

(PHP 3, PHP 4 )

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() も 参照下さい。