はじめに
テキストを特定の文字数で切り詰めて末尾に...
などを付けたいときありますよね。
PHPでの組み込み関数を使えば簡単に実現できるのですが、CakePHPでは更に簡単に使えるものがありました。
最新のCakePHP4のものを紹介します。(2.x、3.xでもありました)
使い方
Cookbookに載っている通りになるのですが、
Cake\Utility\Text::truncate(string $text, int $length = 100, array $options)
メソッドを利用します。
$text
が$length
より長い場合、このメソッドはそれを$length
の長さに切り詰め、 'ellipsis'
が定義されているなら末尾にその文字列を追加します。
ちなみにellipsis
は日本語で省略記号
という意味です。(truncate
は切り捨てる
)
use Cake\Utility\Text;
$text = 'テキストを切り詰めます'
echo Text::truncate(
$text,
5,
[
'ellipsis' => '...',
]
);
出力:
テキストを...
※$textがnullの場合でもサフィックスだけ表示されちゃうみたいなことは起きません。
おわりに
FWを利用する場合、汎用的なメソッドであれば便利な形で用意されてることもあるので、一度FW標準のものがないか確認した上で、なければ組み込み関数を使うといった手順を踏んだ方がよい、と本日先輩に教わりましたので備忘録として書き記しました。