PHP | 文字列を指定文字数で分割する方法

PHP,PHP 文字列

PHPで文字列を指定文字数で分割して連結文字列で連結した文字列を取得する方法と配列に格納する方法、およびサンプルコードを紹介しています。

確認環境

エックスサーバー
PHP 8.016

wordwrap()で指定文字数で分割、連結文字列で繋げた文字列を生成

wordwrap()関数は文字列を指定文字数(バイト単位)で分割、指定した連結文字列を含めた文字列を返します。

第二引数に折り返す文字数(バイト単位)を指定、第三引数に連結文字列を指定します。

第四引数にて単語の途中で折り返すかを設定します。trueであれば単語の途中で折り返し、false(デフォルト)であれば単語の途中では折り返しません。

echo wordwrap('Aplle Pine Banana Orange', 10, '<br>', true);

// Aplle Pine<br>Banana<br>Orange

日本語などのマルチバイト文字が含まれている場合、文字化けしますので注意が必要です。
マルチバイト文字に対応したmb_wordwrap()という関数は用意されていないので別途、関数を定義する必要があります。

echo wordwrap('Aplle Pine Banana Orange', 10, '<br>', true);

// リンゴ<br>バナナ<br>パイン<br>オレン�<br>��

str_split()、mb_str_split()で指定文字数で分割して配列にする

str_split()関数やmb_str_split()関数は文字列を指定文字数で分割して配列に格納した結果を返します。

第一引数に指定文字列、第二引数に分割する文字数を指定します。

str_split()関数はバイト単位で文字列を分割します。

$arr = str_split('Aplle Pine Banana Orange', 5);
print_r($arr);
// Array ( [0] => Aplle [1] => Pine [2] => Bana [3] => na Or [4] => ange )

日本語を含むマルチバイト文字を利用する場合はstr_split()関数は文字化けしますので、mb_str_split()関数を利用します。

$arr = mb_str_split('リンゴ バナナ パイン オレンジ', 5);
print_r($arr);
// Array ( [0] => リンゴ バ [1] => ナナ パイ [2] => ン オレン [3] => ジ ) 

PHP,PHP 文字列

Posted by Yousuke.U