無料CGI、PHPサイト(確認画面付きメールフォーム・メーリングリスト・メルマガ設置、逆アクセスランキング、画像カウンター等)PHPマニュアル by k-sky

split

(PHP 4, PHP 5)

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

説明

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

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

パラメータ

pattern

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

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

string

入力文字列。

limit

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

返り値

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

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

例1 split() の例

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

<?php
list($user$pass$uid$gid$extra) =
    
split(":"$passwd_line5);
?>

例2 split() の例

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

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

注意

ヒント

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

ヒント

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