CakePHPクッキング

指定文字数を抜粋して表示するTEXTヘルパー

開発環境:CakePHP2.5.1

ヘッドラインや検索結果など、ある程度長い文章の一部だけを表示させたいケースがあります。
そんな時に便利なヘルパーがCakePHPには3つ用意されています。
それでは一つずつ見ていきましょう。

先頭から一定文字数を抜粋するtruncate

ヘッドラインなどでよく見る、先頭から10文字くらいタイトルが見えていて、残りは…のようになっているアレです。

次のような文章があったとします。

<?php
$text = 'CakePHPはPHP用の高速開発フレームワークです。アプリケーションの開発、メンテナンス、インストールのための拡張性の高い仕組みを提供します。 MVC や ORM といった、よく知られているデザインパターンを、「設定より規約優先」の考え方で利用して、CakePHPは開発コストや開発者が書く必要のあるコードを減らします。';
?>

50文字を抜粋したい場合は次のように記述します。

<?php
echo $this->Text->truncate($text, 50, array(
    'ellipsis' => '...',
    'exact' => true,
    'html' => true
));
?>

結果

CakePHPはPHP用の高速開発フレームワークです。アプリケーションの開発、メンテナンス、イ...

ellipsisは省略後の文字の指定で、ここで指定した文字も抜粋する文字数にカウントされるので注意しましょう。
exactは日本語の文字だけだと思った通りの動きをしてくれないのでtrueにしておきましょう。英語などの場合に、falseにすると次の単語の最後まで含めて切り取ってくれます。
htmlはtrueにするとHTMLタグを抜粋の対象にしないのに対し、falseにするとHTMLタグを対象に含めてくれます。

後方から一定文字数を抜粋するtail

tailの使い方はtruncateと同じですが、truncateが先頭からの一定文字数を抜粋してくれるのに対し、tailは一番最後から一定文字数を抜粋してくれます。

echo $this->Text->tail($text, 50, array(
    'ellipsis' => '...',
    'exact' => true,
    'html' => true
));

結果

...」の考え方で利用して、CakePHPは開発コストや開発者が書く必要のあるコードを減らします。 

特定の文字の前後一定文字数を抜粋するexcerpt

excerptはGoogleなどの検索結果にあるような特定のキーワードの前後一定文字数を抜粋してくれます。

<?php echo $this->Text->excerpt($text, 'MVC', 25, '...'); ?>

結果

...ストールのための拡張性の高い仕組みを提供します。 MVC や ORM といった、よく知られているデザインパ... 

こちらは特定のキーワードを基準に前後25文字ずつを抜粋する方法になります。
ただし、truncateやtailと違うのは省略後の文字については抜粋文字数にはカウントされません。

WordPressとCakePHPの共存

サイトを作るのに便利なWordPress。プラグインも数多く用意されて

サイトマップの作成方法

Googleのウェブマスターツールに渡すためのサイトマップの作成方法で

INSERTしたIDを取得する

データを保存した後にINSERTされたデータのIDを使って何かの処理を

ファイルの存在確認やフォルダー内のファイル一覧取得

特定のファイルの存在を確認したい場合や特定のフォルダー内にあるファイル

リンクの最後に常にスラッシュをつける方法

URLの最後に常にスラッシュをつけるかつけないかを統一する方法は、UR

countやsumを使う時のフィールド名を指定する

CakePHPでcountやsumなどを使う場合、ちょっとした工夫が必

Formの便利な使い方

問い合わせフォームや会員機能など、WEBサイトを作る際に必ず必要になる

ヘルパーをオーバーライドする

CakePHPで便利な機能が詰まったヘルパーですが、時々もう少しこうだ

特定の時だけSQLの条件を追加するならSet::mergeを使う

SQLの条件を追加したい時に使うのがarray_mergeなどですが、

ページネーションではDISTINCTではなく、GROUP BYを使う

重複したデータを省く時に使うDISTINCTですが、ページ送りで使う時

Model内で別のModelを呼び出す

モデル内で別のモデルを使いたいケースがあった場合、次のようにすることで

CakePHPでGoogleAnalyticsAPIを使う

CakePHPでGoogleAnalyticsを使う方法について見てい

独自のfindを定義するfindMethods

findをより便利に、よりスッキリ書くのに、findMethodsを使

TCPDFを使ってCakePHPでPDFを作成

CakePHPでPDFを作成するには幾つかの方法がありますが、今回はT

JavaScriptをコードの最下部に配置

SEOの観点からJavaScriptのコードは一番下に記述したいところ

無限スクロールをさせる

TwitterやFacebookのタイムラインを見ていて、ページの下に

PHPExcelの導入

ExcelにDBのデータを表示して一覧を作ったり、請求書などのフォーマ

Warning: SplFileInfo::openFile〜の警告が表示されたら

ShellとWEBの両方で同一のModelを呼び出す時に「Warnin

連結されていないデータを抽出

通常、テーブルを連結してデータを取得するには、アソシエーションを利用し

データを取得する

データを取得したい時に少し変わった条件で取得したい場合があります。

PAGE TOP ↑