指定した文字数で文字列を丸める場合、mb_strimwidth関数を使うことで実現することが出来ます。
$text = "123465789012346578901234567890";
$string = mb_strimwidth( $text, 0, 20, "...", "UTF-8" );
echo $string;
---
12346578901234657...
$text = "あいうえお12345678あいう";
$string = mb_strimwidth( $text, 0, 20, "...", "UTF-8" );
echo $string;
---
あいうえお1234567...
mb_strimwidth関数では、半角を1文字として、全角を2文字として扱われるので、指定した文字数を超えた場合、
それ以降の文字列をカットすることが出来ます。
また、第4パラメータで、文字列末尾に付加する文字列を指定するが出来ます。
注意点としては、例えば上記のように20文字で丸める場合、付加した末尾の文字列も含めて20文字となるため、
17文字までしか表示されません。