mb_strlen( )?mb_substr( )?この2つの関数の違いを調べてみた #PHP mb_strlen( )?mb_substr( )?この2つの関数の違いを調べてみた #PHP

mb_strlen( )?mb_substr( )?この2つの関数の違いを調べてみた #PHP

昨日、「【wordpress】長いタイトルを省略して表示するメモ」を書いてから、ふと似たようなものをテンプレートで使ってたことを思い出しました。

それが、

です。
投稿の本文の文字数を省略して表示ている部分です。

mb_strlen( )?mb_substr( )?はて?

似たようなことをやっているのに、関数が違うのはなんでだろう?
と疑問に思ったので、PHPマニュアルで調べてみることにしました。

mb_strlen( )は文字列の長さを取得する関数

str
長さを調べたい文字列。
encoding
encoding パラメータには文字エンコーディングを指定します。省略した場合は、 内部文字エンコーディングを使用します。

PHPマニュアル:mb_strlen

昨日、タイトルの文字数を省略して表示させていたmb_strlen( )はタイトルの文字数を取得して、条件分岐をさせていたようです。

mb_substr( )は文字列の一部を取得する関数

str
部分文字列を取り出したい文字列。
start
str の中から最初に取り出す文字の位置。
length
str の中から取り出す最大文字数。 省略したり NULL を渡したりした場合は、 文字列の最後までの全バイトを取り出します。
encoding
encoding パラメータには文字エンコーディングを指定します。省略した場合は、 内部文字エンコーディングを使用します。

PHPマニュアル:mb_substr

mb_strlen( )と違い、mb_substr( )は文字列の一部を取得して表示させる関数のようです。

mb_strlen( )は文字列の長さ、mb_substr( )は文字列の一部

似ているようだけど、やっぱり目的が違う関数のようです。

昨日のタイトル省略ですが、何文字以上のタイトルだったら省略という目的ではなく、もうこれ以上は表示させないというふうに使うのであれば、

という使い方もありだったのかな・・・?

515 views/total