PHPで指定した文字数で改行させるwordwrap関数のマルチバイト対応

長い文章を指定した文字数で改行させたい時に使うPHPのwordwrap関数は日本語のようなマルチバイト文字に対応していないが、対応させた関数を作ってくれた方がいた。

[PHP]マルチバイト対応のwordwrapが無いから作った
https://qiita.com/mighty5/items/a5e048046e6e662134a0

ただ、文字コードを明示的に指定出来た方が良いと思ったので少し改変させて頂いた。

public function mb_wordwrap( $str, $width=35, $break=PHP_EOL, $encode="UTF-8" )
{
  $c = mb_strlen($str, $encode);
  $arr = [];
  for ($i=0; $i<=$c; $i+=$width) {
    $arr[] = mb_substr($str, $i, $width, $encode);
  }
  return implode($break, $arr);
}
スポンサーリンク
スポンサーリンク

フォローする