今日の人気記事

  1. HTML内でPHPスクリプトを実行 - 埋め込み
  2. PHP + Apache 環境の構築
  3. PHPのダウンロードとインストール - Windows環境
  4. PHP + Apacheのインストール - Linux環境 - CentOS
  5. 外部コマンドを実行 - exec()、system()

文字列の長さを取得 - 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)
スポンサーリンク