PHP 文字列の長さを取得するサンプル(mb_strlen)

PHPの文字列の長さを取得するサンプルです。
mb_strlen関数を使用します。

確認環境
・PHP 7.1.8

目次

mb_strlen関数

mixed mb_strlen ( string 文字列 [, string エンコーディング] )
  • 文字列の長さを取得します。
  • 日本語のひらがなや漢字などのマルチバイト文字に対応しています。
  • エンコーディングを省略した場合は内部文字エンコーディングを使用します。
    →内部文字エンコーディングは、mb_internal_encoding関数で確認できます。
  • 以下は、PHPマニュアルのmb_strlen関数のリンクです。
    http://php.net/manual/ja/function.mb-strlen.php
  • 以下は、PHPマニュアルのmb_internal_encoding関数のリンクです。
    http://php.net/manual/ja/function.mb-internal-encoding.php

コード (ファイルはUTF-8で保存)

ファイルがUTF-8で保存されている場合です。
3行目は、mb_internal_encoding関数で、現在の内部文字エンコーディングを表示しています。
8,9行目は、mb_strlen関数で文字列の長さを取得しています。

<?php

echo mb_internal_encoding(); //UTF-8

$test1 = "あいう";
$test2 = "あいうえおabc";

print mb_strlen($test1); //3
print mb_strlen($test2,"UTF-8"); //8

?>

コード (ファイルはShift-JISで保存)

ファイルがShift-JISで保存されていて、内部エンコーディングがUTF-8で、内部エンコーディングを変更しない場合です。
この場合mb_strlen関数の2つめの引数をSJIS等(※)に変更します。※種類があります。

<?php

echo mb_internal_encoding(); //UTF-8

$test1 = "あいう";
$test2 = "あいうえおabc";

print mb_strlen($test1,"SJIS");//3
print mb_strlen($test2,"SJIS");//8

?>

 

mb_list_encodings関数

コード

mb_list_encodings関数でサポートされている内部文字エンコーディングの種類を確認しています。

<?php
foreach (mb_list_encodings() as $value){
	echo $value."<br />\n"; 
}
?>

 

strlen関数

int strlen (string 文字列)
  • 文字列の長さを取得します。
  • 日本語のひらがなや漢字などのマルチバイト文字に対応していません。
    →mb_strlen関数を使用して下さい。
  • 以下は、PHPマニュアルのstrlen関数のリンクです。
    http://php.net/manual/ja/function.strlen.php

コード

strlen関数で文字列の長さを取得しています。

<?php

$test1 = "abc";
$test2 = "abcd";

print strlen($test1);//3
print strlen($test2);//4

?>

関連の記事

PHP 文字列が一致するか比較するサンプル(strcmp)
PHP 文字列の大文字と小文字を変換する(strtoupperとstrtolower)
PHP 文字列の一部を取得するサンプル(mb_substr)

 はまったらエンジニア特化型Q&Aサイト
【teratail(テラテイル)】で質問しましょう!


△上に戻る