「TextHelper::highlight()」メソッドを使う。
■関数定義
$this->Text->highlight($text, $phrase, $options);
■引数詳細
| プロパティ | 初期値 | 詳細 |
|---|---|---|
| $text | 省略不可 | 対象のテキスト |
| $phrase | 省略不可 | ハイライトしたいフレーズ |
| $options | array() | オプション(下記参照) |
■$optionsに設定可能なパラメーター
| キー | 初期値 | 詳細 |
|---|---|---|
| format | ‘<span class=”highlight”>\1</span>’ | ハイライト時のフォーマット |
| html | false | HTMLの混在したテキストを渡す場合はtrue、混在しない場合はfalse |
| regex | “|%s|iu” | 置換時に用いられる正規表現。%sは$phraseに置き換えられる |
以下例。
コントローラー側で以下のような文字列をビューにセットしたとする。
$str = 'あいうえおかきくけこさしすせそたちつてとなにぬねの';
$this->set('str', $str);
次にビュー側で以下のように記述。
<?php echo $this->Text->highlight($str, 'くけこ'); ?>
すると以下のようなHTMLが出力される。
あいうえおかき<span class="highlight">くけこ</span>さしすせそたちつてとなにぬねの
特定のテキストの見せ方が自由自在になるので検索機能周りと連携させるとめちゃくちゃ便利。