文字列を指定した幅に調節 - mb_strimwidth()
当ページのリンクには広告が含まれています。
Webプログラミング言語PHPで、指定した文字列を指定した幅に調節する(丸める)mb_strimwidth関数を紹介します。
mb_strimwidth関数
string mb_strimwidth ( string $string , int $start , int $width [, string $trimmarker [, string $encoding ]] )
指定した文字列を指定した幅に調節します(丸めます)。
引数 $string 調節する文字を指定します。 $start 調節する文字列の位置を指定します。省略した場合は文字列の最初「0」から調節します。 $width 調節する文字列の幅を指定します。 $trimmarker 調節した文字列の末尾に追加する文字列を指定します。 $encoding 調節する文字列のエンコーディングを指定します。 省略した場合は内部エンコーディング†を使います。
返り値 調節した文字列を返します。 マルチバイト文字はバイト文字の倍の幅を指定する必要があります。
†内部エンコーディングの設定はこちら » 日本語環境の設定 - mbstring。
サンプルコード - 文字列の幅を調節
指定した文字列の幅を調節するサンプルコードです。
mb_strimwidth( 調節する文字列, 調整文字列の開始位置, 文字列の幅 )
<?php /* 文字列の幅を調節 */ $string = "abcdefghijk"; var_dump(mb_strimwidth($string, 0, 5)); $string = "ABCD文字列の幅"; var_dump(mb_strimwidth($string, 0, 8)); ?>
実行結果です。
string(5) "abcde" string(10) "ABCD文字"
指定した文字列が指定した幅に調節されています。マルチバイト文字はバイト文字の倍として換算されるので、「ABCD」の幅「4」、「文字」の幅「4」として調節されています。
サンプルコード - 調節した文字列の末尾に文字列を追加
指定した文字列の幅を調節し、末尾に文字列を追加するするサンプルコードです。
mb_strimwidth( 調節する文字列, 調整文字列の開始位置, 文字列の幅, 末尾に追加する文字列 )
<?php /* 調節した文字列の末尾に文字列を追加 */ $string = "abcdefghijk"; var_dump(mb_strimwidth($string, 0, 5, "...")); $string = "ABCD文字列の幅"; var_dump(mb_strimwidth($string, 0, 8, "!")); ?>
実行結果です。指定した文字列が指定した幅に調節され、文字列の末尾に文字列が追加されています。追加する文字列も指定した文字列の幅に含まれるので、注意が必要です。
string(5) "ab..." string(10) "ABCD文!"