文字数を指定した数だけ切り出すことは良くあります。
タイトルの長い記事一覧をメニューに表示するときなど、
指定の文字数でメニューに表示した方が、デザイン的にもすっきりとまとまるからです。
そのようなときは通常
substrを使いますが、これは
$str = substr($str, 0, 90);
とすると$strの最初から90文字(半角英数字90文字、全角なら45文字)切り出します。
しかし、日本語では半角と全角が混在し、中途半端に切り取られ文字化けすることが多々あります。
これを解消したいときには、
mb_substrでマルチバイトに対応させます。
$str = mb_substr($str, 0, 30, "UTF-8")."
これは$stの最初から30文字(全角)を切り出します。
マルチバイト対応なので、半角と全角が混合していても文字化けしません。
管理人の場合は、
function_set.phpという別ファイルを作り、
ここへ
//指定文字数を返す
function copy_num_cut($str,$cout) {
$str = mb_substr($str, 0, $cout,"UTF-8");
return $str;
}
の様な関数を登録しています。
これならどこからでも copy_num_cut(文字列,指定数)で必要な文字数カットできます。