PHP では、関数 explode や str_split、preg_split を使用して文字列を分割することができます。
今回は PHP で文字列を分割する方法を紹介します。
本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
最終更新日:2019年4月12日
目次
explode 関数は、文字列を区切り文字列で分割する関数です。
実行すると、分割された各文字列を格納した配列が返ります。
explode 関数は 次のように記述して使用します。
explode(区切り文字列, 分割対象文字列[, 分割個数の最大値]);
第 1 引数には、分割する文字列( 区切りとなる文字列 )を指定します。
第 2 引数には、分割対象となる文字列( 元の文字列 )を指定します。
第 3 引数には、分割個数の最大値を指定することができます( 0 又は -1 を指定すると制限無しとなります )。
explode 関数を使用して 文字列を分割してみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre>
<?php
$str = "Sun/Mon/Tue/Wed/Thu/Fri/Sat";
print_r(explode("/", $str));
print_r(explode("/", $str, 3));
?>
</pre>
第 2 引数で指定した文字列が 第 1 引数で指定した「 / 」で分割され、分割された各文字列が格納された配列が生成されました。
第 3 引数に「 3 」を指定したサンプルでは、分割後の各文字列の最大個数が 3 となるため、3 番目以降の配列要素に格納される文字列は分割されないまま 1 つの値として格納されます。
print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
str_split 関数は、文字列を 1 文字毎 又は 指定した文字数毎に分割する関数です。
実行すると、分割された各文字列を格納した配列が返ります。
str_split 関数は 次のように記述して使用します。
str_split(分割対象文字列[, 文字数]);
第 1 引数には、分割対象となる文字列を指定します。
第 2 引数には、分割する文字数を指定することができます。
str_split 関数を使用して 文字列を分割してみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre>
<?php
$str = "CDEFG";
print_r(str_split($str));
print_r(str_split($str, 2));
?>
</pre>
第 2 引数に何も指定しない場合は 1 文字ずつ分割され、第 2 引数に文字数を指定した場合は その文字数毎に分割されて、分割後の各文字列が配列に格納されて返ります。
print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
preg_split 関数は、文字列を正規表現で分割する関数です。
実行すると、分割された各文字列を格納した配列が返ります。
preg_split 関数は 次のように記述して使用します。
preg_split ( 正規表現, 分割対象文字列 [, 分割個数の最大値 [, オプション ] ] ) ;
第 1 引数には、区切りとなる正規表現のパターンを指定します。
第 2 引数には、分割対象となる文字列( 元の文字列 )を指定します。
第 3 引数には、分割個数の最大値を指定することができます( 0 又は -1 を指定すると制限無しとなります )。
第 4 引数には、次のオプションを指定することができます。
・PREG_SPLIT_NO_EMPTY:空文字列を除外
・PREG_SPLIT_DELIM_CAPTURE:正規表現パターン内のサブパターンでも同時に分割
・PREG_SPLIT_OFFSET_CAPTURE:分割後の各文字列と共にオフセット値も返る( 文字列とオフセット値を 1 つの配列として、それが分割後の各文字列分格納された 2 次元配列が返る )
preg_split 関数を使用して 文字列を分割してみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre>
<?php
$str = "This is a function.";
print_r(preg_split("/ /", $str, 0, PREG_SPLIT_OFFSET_CAPTURE));
?>
</pre>
スペースを正規表現「 / / 」として指定してるので、スペース区切りで文字列が分割されました。
第 4 引数で「 PREG_SPLIT_OFFSET_CAPTURE 」を指定しているため、分割後の文字列とそのオフセット値( 先頭文字の位置 )がペアで格納される 2 次元配列が返ります。
print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
INTERNOUS,inc. All rights reserved.