文字数はmb_strlenで取得し、文字のカットはmb_substrを使うまではわかっているのですが、
肝心の上記計算式がわかりません。
参考になるサイトや考え方を教えて下さい。
文字の大きさとなるフォントにより結果が異なります。
実際にそのフォントで描いた場合にどの様に表示されるかについては、それ相応のAPIを使わないと分かりませんが
方法としては2つあります。
まず計算で出す方法。
表示させたい幅 / 表示させたい文字数
となるようにする。
次にGDを使う方法。
この値が正しく戻るか分かりませんが、こんなAPIがあります。
http://php.net/manual/en/function.imagettfbbox.php
これで描いたボックスの大きさが、指定の範囲内になるよう文字列を減らしながら調整する。
$hyouji_text = "";
$text = "てきすと、、、";
$leader = "…";
$w=$h=12;
$width=幅;
$height=高さ;
$cols = floor( $width / $w );//一行の最大文字数
$rows = floor( $height / $h );//最大行数
$maxlen = $cols * $rows;//最大文字数
$strlen = mb_strlen($text);//文章全体の文字数
if($strlen > $maxlen){
$hyouji_text = mb_substr($text,0,($maxlen-1).$leader);
}else{
$hyouji_text = $text;
}
こういうことでしょうか。。。
改行とか考えてませんが。
ご参考までに。
表示させたい文字数が決まっていなくて、指定枠に収まるよう文字列を自動リサイズさせたいのが、質問の意図です。
それを実現する為の、諸々の情報を期待していたのですが、質問の仕方が悪くて誤解を招きました。すみません。