【CakePHP2.3】文字列内のURLに自動でリンクを付与する。

「TextHelper::autoLinkUrls()」メソッドを使う。

■関数定義

$this->Text->autoLinkUrls($text, $options);

■引数詳細

プロパティ 初期値 詳細
$text 省略不可 URLが含まれているであろう文字列
$options array() リンクタグに不可するオプション

$optionsには「Html::link()」メソッドで与えることの出来るオプションを追加可能。

以下例。

コントローラー側からビューに文字列をセット。

$urlString = 'グーグルはhttp://google.com。ヤフーはhttp://yahoo.co.jp。';
$this->set('urlString', $urlString);

ビューファイル内で下記のようにヘルパーを呼び出す。

<?php echo $this->Text->autoLinkUrls($urlString); ?>

すると以下のようなHTMLを自動で出力してくれる。

グーグルは<a href="http://google.com">http://google.com</a>。ヤフーは<a href="http://yahoo.co.jp">http://yahoo.co.jp</a>。

ちなみに。

TextHelper::autoLinkEmails()でメールアドレスを検出、TextHelper::autoLink()でURL、メールアドレス両方を検出し自動的にリンクを付与してくれる。