PHPで文字数でなく、文字幅の計算

| | コメント(0)

DBのデータをFPDF使って、PDFで表の形にする、という作業をしていてハマッたので。
MultiCellで自動改行されるけど、見だし部分はCellにするので、MultiCellの行数を数えて、行数設定をしてあげなければならなかった。

1)文字列の改行(PHP_EOL)でぶった切った配列を作り
2)配列要素を50字換算で何行あるか数え、たして行く。
って流れで考えて、mb_strlenで50字を計算してたけど、半角文字数がまざるとぐちゃぐちゃ。

調べたらmb_strwidthって関数があるのね。
これは全角2文字、半角1文字で、幅で計算してくれるっぽい。
なので、これで100字換算で何行か、というコードに変更。
これで問題なく計算できました。

コメントする