PHPの関数を使って表示文字数を制限する方法【PHP】

最終更新日:

公開日:2024-11-29

ページ内に広告が含まれています。
PHPの関数を使って表示文字数を制限する方法【PHP】

先日、Wordpress関数(テンプレートタグ)を使用した表示文字数の制限方法を解説しましたが、今回はPHPの関数を使用した表示文字数の制限方法を解説していきます。
WordPress関数(テンプレートタグ)やCSSを使用した表示文字数の制限方法は以下をご覧ください。

PHPの関数を使用した表示文字数を制限する方法

WordPressの場合は、Wordpress関数(テンプレートタグ)を使えば大体大丈夫なのですが、目的と合わなかったり、上手くいかない場合は以下のPHP関数を使用した方法を使ってみてください。
PHP関数を使用した方法は以下のようになります。

<?php
    $post_content = strip_tags(get_the_content());
    $excerpt_content = str_replace(array("\n", "\r\n"), '', $post_content);
    $limit = '50';

    if(mb_strlen($post_content ) > $limit){
        $excerpt_content = mb_substr($post_content, 0, $limit);
        echo $excerpt_content . '…';
    } else {
        echo $post_content;
    }
?>

上記例の詳しい内容は以下となります。

strip_tags関数

strip_tags関数はHTMLやPHPタグを取り除く事ができる関数です。

$post_content = strip_tags(get_the_content());

今回は、Wordpressで本文を取得(get_the_content)しHTMLやPHPタグを取り除いています。
特定のタグを取り除きたくない場合は以下のように引数に指定します。
※取り除かなかったタグは文字数にカウントされますのでご注意ください。

// brタグを残す場合
$post_content = strip_tags(get_the_content(),'<br>');

str_replace関数

str_replace関数は文字列を置換する関数です。

$excerpt_content = str_replace(array("\n", "\r\n"), '', $post_content);

今回は、取得した文字列から改行を表示させないように空にしています。
strip_tags関数でpタグを取り除いた場合、pタグ同士の間にスペースが入ってしまいますので、それを取り除くにも有効となります。

変数$limit

変数$limitには、表示する文字数を格納し使用します。
今回は50文字としています。

$limit = '50';

mb_strlen関数

mb_strlen関数で文字列の長さを取得し、if文で変数$limitで定義した文字数を超えた場合、超えていない場合の処理を定義しています。

if(mb_strlen($post_content ) > $limit){}

変数$limitの文字数を超えた場合は、次項で解説する指定の文字数だけ取得し末尾に記号を追加する処理をし、超えていない場合はそのまま出力をしています。

mb_substr関数

mb_substr関数は指定した文字数までを取得する関数です。
第1引数に元となる文字列、第2引数に何文字目から取得するかを指定、第3引数に何文字取得するかを指定しています。

$excerpt_content = mb_substr($post_content, 0, $limit);

上記例では、$post_contentの0文字目から変数$limitで指定した50文字を取り出しています。

さいごに

いかがでしたでしょうか。
今回は、PHPの関数を使って表示文字数を制限する方法を解説しました。
PHPでの方法を覚えておくとWordpressの関連もあり、PHPを使用する機会も多くなっていますので覚えておけば応用が利くかと思います。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。プロフィールはこちら

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼
PAGE TOP