URLやメールアドレスに自動でリンクを貼ってくれるヘルパー
開発環境:CakePHP2.5.1
文章の中に書かれたURLやメールアドレスにリンクが貼りたい時に便利なヘルパーがあります。
URLにリンクを貼るautoLinkUrls
まずはURLに自動でリンクを貼る方法ですが、autoLinkUrlsを使います。
1 2 3 4 |
<?php $text = 'CakePHPはPHP用の高速開発フレームワークです。http://cakephp.jp/ アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。'; echo $this->Text->autoLinkUrls($text); ?> |
結果は、
1 |
CakePHPはPHP用の高速開発フレームワークです。<a href="http://cakephp.jp/">http://cakephp.jp/</a> アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。 |
メールアドレスにリンクを貼るautoLinkEmails
メールアドレスにリンクを貼るにはautoLinkEmailsを使います。
1 2 3 4 |
<?php $text = 'CakePHPはPHP用の高速開発フレームワークです。 info@cakephp.jp アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。'; echo $this->Text->autoLinkEmails($text); ?> |
結果は、
1 |
CakePHPはPHP用の高速開発フレームワークです。 <a href="mailto:info@cakephp.jp">info@cakephp.jp</a> アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。 |
autoLinkUrlsもautoLinkEmailsもやってくれるのがautoLink
URLもメールアドレスもリンクを貼りたいとい時に使えるのがautoLinkです。
1 2 3 4 |
<?php $text = 'CakePHP( http://cakephp.jp/ )はPHP用の高速開発フレームワークです。 info@cakephp.jp アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。'; echo $this->Text->autoLink($text); ?> |
結果は、
1 |
CakePHP( <a href="http://cakephp.jp/">http://cakephp.jp/</a> )はPHP用の高速開発フレームワークです。 <a href="mailto:info@cakephp.jp">info@cakephp.jp</a> アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。 |
リンクが貼られたURLと貼られていないURLが混在する場合の対処方法
一部の文字はリンクが貼られている文章にautoLinkを使うと最初からリンクが貼られたテキストのHTMLタグがそのまま表示されてしまいます。
そこで、一旦HTMLタグを除去することですべてのURLやメールアドレスにリンクを貼ることができます。
1 2 3 4 |
<?php $text = 'CakePHP( http://cakephp.jp/ )はPHP用の高速開発フレームワークです。 <a href="mailto:info@cakephp.jp">info@cakephp.jp</a> アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。'; echo $this->Text->autoLink(strip_tags($text)); ?> |
結果は、
1 |
CakePHP( <a href="http://cakephp.jp/">http://cakephp.jp/</a> )はPHP用の高速開発フレームワークです。 <a href="mailto:info@cakephp.jp">info@cakephp.jp</a> アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。 |
柴田 篤志
最新記事 by 柴田 篤志 (全て見る)
- WordPressとCakePHPの共存 - 2014年10月22日
- サイトマップの作成方法 - 2014年10月12日
- INSERTしたIDを取得する - 2014年10月4日