[PHP]マルチバイト対応のwordwrapが無いから作った

  • 5
    Like
  • 0
    Comment
More than 1 year has passed since last update.

wordwrapのマルチバイト対応のものを漁ってみましたが、smartyを入れないといけなかったり(面倒)、
なんか不安。要するに似た動きしてくれて、内部コードが保証されててメンテしやすければOK!

これでどうだ

mb_wordwrap
public function mb_wordwrap( $str, $width=35, $break=PHP_EOL )
{
    $c = mb_strlen($str);
    $arr = [];
    for ($i=0; $i<=$c; $i+=$width) {
        $arr[] = mb_substr($str, $i, $width);
    }
    return implode($break, $arr);
}

基本的に日本語横書き文書は35文字で改行で、単語を途中で切るのも受け入れられている(誤解を生むとんでもない意味に変化するときもあるが)からこれでよし。

ほら〜期待通り動く。ソースの見通しもいいね。