(PHP 4, PHP 5)
split — 正規表現により文字列を分割し、配列に格納する
$pattern
, string $string
[, int $limit
= -1
] )
string
を、正規表現によって配列に分割します。
この関数は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。
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";
?>
注意:
PHP 5.3.0 以降、 regex 拡張モジュールは非推奨となりました。かわりに PCRE 拡張モジュール を使うことが推奨されています。 この関数をコールすると
E_DEPRECATED
が発生します。 PCRE への変換についてのヘルプは 相違点の一覧 を参照ください。
split() は PHP 5.3.0 以降で非推奨になりました。この関数のかわりに preg_split() を使うことを推奨します。 正規表現の威力が必要ないのであれば、explode() を使用するほうがより高速です。これは正規表現エンジンの オーバーヘッドを受けません。
Perl の @chars = split('', $str) と同等の処理をする方法を知りたい場合は、 preg_split() あるいは str_split() の例を参照ください。