今日の人気記事

  1. ファイルがディレクトリかどうかを確認 - is_dir()

文字列の長さを取得 - strlen()、mb_strlen()

当ページのリンクには広告が含まれています。

Webプログラミング言語PHPで、指定した文字列の長さを取得するstrlen関数、マルチバイト版のmb_strlen関数を紹介します。

strlen関数

int strlen ( string $string )
指定した文字列の長さを取得します。
マルチバイト文字列の長さは正しく見積もれません。
日本語などの長さを取得したい場合は、後述するmb_strlen関数を使います。
引数
$string
長さを取得する文字列を指定します。
返り値
指定した文字列の長さをint型で返します。

サンプルコード

指定した文字列の長さを取得するサンプルコードです。

strlen( 文字列 )
<?php
$string1 = "abc";
var_dump(strlen($string1));

$string2 = "入門だよ";
var_dump(strlen($string2));
?>

実行結果です。指定した文字列「abc」の長さは正しく取得されていますが、日本語の文字列「入門だよ」は正しく取得されていないことがわかります。日本語などのマルチバイト文字列の長さを正しく見積もる場合は、mb_strlen関数を使いましょう。

int(3)
int(12)

mb_strlen関数

int mb_strlen ( string $string [, string $encoding ] )
指定した文字列の長さを取得します。
マルチバイト文字列の長さも正しく取得します。
引数
$string
長さを取得する文字列を指定します。
$encoding
エンコーディングを指定します。
日本語の場合、"UTF-8"、"EUC-JP"、"SJIS"を指定します。
エンコーディングの指定を省略した場合は、 内部エンコーディングを使用します。
返り値
指定した文字列の長さをint型で返します。

内部エンコーディングの設定はこちら » 日本語環境の設定 - mbstring

サンプルコード

指定した文字列(UTF-8)の長さを取得するサンプルコードです。

mb_strlen( 文字列, "UTF-8" )
<?php
$string = "abc";
var_dump( strlen( $string ) );

$string1 = "入門だよ";
var_dump( mb_strlen( $string1, "UTF-8" ) );

$string2 = "PHP入門だよ";
var_dump( mb_strlen( $string2, "UTF-8" ) );
?>

実行結果です。バイト文字、マルチバイト文字、それらが混ざった文字列の長さが正しく取得されています。

int(3)
int(4)
int(7)

文字列 の人気記事

  1. 配列を文字列に変換する - implode()
  2. 文字列が最後に現れる場所を取得 - strrpos()、mb_strrpos()
  3. 指定した文字列以降の文字列を取得 - strstr()、strchr() - mb_strstr()
  4. 文字列をURLエンコード・デコード - urlencode()、urldecode()

関連記事(一部広告含む)