【PHP】文字列の長さを取得(カウント)するにはstrlen()!

(この記事は2022年7月06日に投稿されました。)

PHPで文字列の長さを取得するには、strlen()を使用します。

strlen()とは文字列の長さをバイト数で取得する関数となります。

そのため、1文字1カウントとして計測し、合計のカウント数を返り値として返すようになります。

しかし、全角文字は1文字につき3カウントとして計測されますので注意してください。

そのため、半角と全角の文字列の長さを取得したい場合はmb_strlen()を使用しましょう。

今回はPHPのstrlen()で文字列の長さを取得(カウント)する方法について紹介していきます。

この記事はこんな方におすすめ
・PHPで指定した文字列の長さを取得したい人




strlen()とは

strlen()とは、文字列の長さをバイト数で取得する関数となります。

例えば、「abcdef」という文字列に対してstrlen()を使用すると「6」が返されるようになります。

strlen()の書き方

strlen()は下記のように記述します。

strlen()は1つのパラメータを指定することで、使用することができます。

strlen()のパラメータ

strlen()のパラメータは下記のようになります。

  1. 文字列(必須):
    長さを測りたい文字列を指定する

strlen()は必須なパラメータとして、「文字列」を指定します。

strlen()で文字列の長さを取得するサンプルコード

strlen()で文字列の長さを取得するサンプルコードについてご紹介します。

ここでは、下記の2つの場合でstrlen()を使用してみます。

  1. 半角文字列の長さを取得する場合
  2. 全角文字列の長さを取得する場合

半角文字列の長さを取得する場合

半角の文字列の長さを取得する場合に、strlen()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

strlen()で半角文字列の長さを取得した結果

半角文字に対して、strlen()を使用すると1文字1カウントとして計測されるようになります。

また、int型の文字列でも長さを取得することができます。

全角文字列の長さを取得する場合

全角の文字列の長さを取得する場合に、strlen()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

strlen()で全角文字列の長さを取得した結果

全角文字に対して、strlen()を使用すると1文字3カウントとして計測されるようになります。

そのため、それぞれ「文字数 × 3」の長さが表示されています。

strlen()で配列の値の長さを取得するサンプルコード

strlen()で配列の値の長さを取得するサンプルコードについてご紹介します。

ここでは、下記の2つの場合でstrlen()を使用してみます。

  1. 配列の指定した値の長さを取得する場合
  2. 連想配列の指定したキーや値の長さを取得する場合

配列の指定した値の長さを取得する場合

配列の指定した値の長さを取得する場合に、strlen()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

strlen()で配列の指定した値の長さを取得した結果

指定した配列の値の長さを取得することができます。

またforeach文を使用することで、全ての配列の値の長さを取得することができます。

もし、foreach文について詳しく知りたい場合は下記の記事をご参考ください。

連想配列の指定したキーや値の長さを取得する場合

連想配列の指定したキーや値の長さを取得する場合に、strlen()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

strlen()で連想配列の指定した値の長さを取得した結果

strlen()によって、指定した連想配列のキーや値の長さを取得することができます。

また、こちらもforeach文を使用することで、全ての連想配列のキーや値の長さを取得することができます。

strlen()を実際に使用するケース

strlen()を実際に使用するケースについてご紹介します。

ここでは、下記の2つのケースについてご紹介します。

  1. 入力する文字列を制限する場合
  2. 文字列に対して繰り返し処理を行う場合

入力する文字列を制限する場合

まず、1つ目は入力する文字列を制限する場合です。

例えば、下記のコードのように、入力した文字列に対してstrlen()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

strlen()で入力する文字列を制限した結果

入力した文字に対して、strlen()を使用することで文字列の長さを測り、制限をかけることができます。

そのため、6文字以上10字以内なら、入力成功のメッセージが表示され、それ以外だとエラーのメッセージが表示されます。

文字列に対して繰り返し処理を行う場合

そして、2つ目は文字列に対して繰り返し処理を行う場合です。

例えば、下記のコードのように、繰り返し処理を行う文字列に対してstrlen()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

strlen()で文字列に対して繰り返し処理を行った結果

文字列に対してstrlen()で長さを取得し、for文などの条件式に指定することで、全ての文字に対して処理を行うことができます。

そのため、1文字1文字に「処理 + No」が表示されています。

全角半角が混合した文字列の長さを正確に取得する場合

全角半角が混合した文字列の長さを正確に取得する場合は、mb_strlen()を使用します。

mb_strlen()とは、マルチバイト文字列の長さをバイト数で取得する関数であり、全角や半角関係なく1文字1バイトとして計測されるようになります。

⚫︎ index.php

⚫︎ 実行結果

mb_strlen()でマルチバイト文字列の長さを取得した結果

mb_strlen()によって全角半角が混合した文字列の長さを正確に取得することができます。

まとめ

⚫︎ strlen()とは、文字列の長さをバイト数で取得する関数である

⚫︎ strlen()を使用するには1つのパラメータを指定する
・ 文字列(必須)

⚫︎ 半角の文字列を指定した場合にstrlen()を使用すると、1文字を1カウントとして計測される

⚫︎ 全角の文字列を指定した場合にstrlen()を使用すると、1文字を3カウントとして計測される

⚫︎ strlen()は、文字列だけでなく指定した配列の値の長さを取得することができる
(連想配列のキーや値でも可能)

⚫︎ strlen()は下記のように使用することができる
・ 入力する文字列を制限する場合
・ 文字列に対して繰り返し処理を行う場合

⚫︎ 全角半角が混合した文字列の長さを正確に取得する場合はmb_strlen()を使用する

コメントを残す

メールアドレスが公開されることはありません。