PHPで文字数制限の方法 WordPressの本文末で「…」加工に
問題点
PHPで文字数制限をしたい。
また、WordPressなどのウィジェットなどでよく使われる、タイトルや本文の末尾に「…」も付けたい。
PHPで文字数制限をする方法
PHPの文字数制限の種類
PHPで文字数制限をかけるには、substr()とmb_substr()があります。
違いは下記のようになります。
- substr()は、バイト数でカウント。
- mb_substr()は、マルチバイト数でカウント。
substr()とmb_substr()の特徴
バイト数とマルチバイト数の違いは、プログラムする人はこれで、すぐに違うはわかるかと思いますが、プログラムを普段しない方にはピンとこないかもしれません。バイト数というのは、半角文字で「abc」これで3バイトになります。日本語の全角文字などは、1文字2バイトになるので、「あいう」これで6バイトになります。
マルチバイトの場合は、半角文字でも全角文字でも1バイトとしてカウントされます。そのため、マルチバイトで計算すると「abc」は変わらず3バイト、「あいう」はマルチバイトだと3バイトということになります。
日本語を含む文字数制限する場合は、マルチバイトの方が深く考えなくてもよいので、mb_substr()の方が楽に使えます。また、substr()で日本語の文字数を制限かけると問題が発生します。例えば、「abcあいう」をsubstr()で4バイトで制限をかけると、「abc̻■」のような文字化けになります。日本語の2バイトのうちの1バイト使用した場合は、文字が壊れて文字化けが発生縞sう。
mb_substr()の構文
mb_substr('変更前の文字列' , 始点 ,終点);
「変更前の文字列」は、文字数制限をされる文字列を入れます。プログラムで使うときは変数を入れます。
「始点」と「終点」は文字数制限をかけるマルチバイトのバイト数の始点と終点となります。
mb_substr()のサンプルソース
文字列の最初は0バイトとなりますので、ご注意ください。
■サンプルソース
$str= '変更前の文字列';
echo mb_substr($str , 1 ,4);
■実行結果
更前の文
WordPressの本文末で「…」加工につける方法
テーマやウィジェットなどの開発時によく、記事のタイトルや本文を文字数制限をして、最後に「…」とよくすると思いますが、その方法です。もちろんその前に、カテゴリーやタグから記事リストの取得など、いろいろすることはあると思いますが、そのあたりは、また記事にしようかと思います。
■記事タイトルに文字数制限して「…」
mb_substr(get_the_title() ,0 , 40, 'UTF-8').'…';
■記事本文末に文字数制限「…」
mb_substr(get_the_excerpt() ,0 , 30, 'UTF-8').'…';
オススメ記事
WordPress Jetpack 12.1.1 重要なセキュリティーホール対策…
問題点 2023年5月30日、WordPressの人気プラグ…
Luxeritasでアイキャッチ画像を記事内に表示する方法…
問題点 WordPressのテーマ、「Luxeritas」の…
WordPress Contact Form 7 でのメールが届くのが遅い理由と…
問題点 WordPressのお問い合わせフォーム「Conta…
ディスカッション
コメント一覧
まだ、コメントがありません