こんにちはフロントエンドエンジニアのまさにょんです!
今回は、PHPで文字列の要素数・長さを取得する方法、strlenとmb_strlenの違いと使い方について解説していきます。
目次
PHPで文字列の要素数・長さを取得する方法
PHPで文字列の要素数・長さを取得するには、strlen()
またはmb_strlen()
を使用します。
strlen()
もmb_strlen()
も文字列の要素数・長さ(int・数値)を実行結果(返り値)として返します。
strlen()
の基本構文はstrlen(string $string): int
の形です。
またmb_strlen()
の基本構文はmb_strlen(string $string, ?string $encoding = null): int
の形になります。
strlenとmb_strlenの違いとは?
それでは、strlenとmb_strlenの違いとは、何でしょうか。
この2つの違いは、マルチバイト文字(Multibyte-String)の扱いです。
strlen()
では、バイト数のまま文字列の要素数・長さを数えますが、
mb_strlen()
では、マルチバイト文字の1文字は1個として数えられます。
ちなみに、mbはマルチバイト(multibyte)の略です。
<?php
// 1. strlen — 文字列の長さを得る
// strlen(string $string): int
// 2. mb_strlen — 文字列の長さを得る
// mb_strlen(string $string, ?string $encoding = null): int
// => マルチバイト文字の1文字は1個として数えられます。
$str = '12';
$robotama = 'robotama';
$robotama_2 = 'ロボ玉';
echo '------------------ strlen ---------------------'. "\n";
echo strlen($str) . "\n";
echo strlen($robotama) . "\n";
echo strlen($robotama_2) . "\n";
echo '------------------ mb_strlen ------------------'. "\n";
echo mb_strlen($str) . "\n";
echo mb_strlen($robotama) . "\n";
echo mb_strlen($robotama_2) . "\n";
// [ 実行結果 ]
// ------------------ strlen ---------------------
// 2
// 8
// 9
// ------------------ mb_strlen ------------------
// 2
// 8
// 3
文字列の長さによって、処理をするSampleCode
今回のSampleCodeでは、文字列型の数値表現に対して、指定の桁(3桁)までは先頭に0を付け加えるような処理をしています。
$str = '12';
$str_length = strlen($str);
// 必ず3桁に調整する
if ($str_length <= 2) {
$add_zero = 3 - $str_length;
for ($count = 0; $count < $add_zero; $count++){
$str = 0 . $str;
}
echo $str;
// 012
}
次のSampleCodeは、関数-Versionです。
// 文字列の数値を必ず3桁に調整する
function ThreeDigits ($str_num) {
$length = strlen($str_num);
if ($length <= 2) {
$add_zero = 3 - $length;
for ($count = 0; $count < $add_zero; $count++){
$str_num = '0' . $str_num;
}
}
return $str_num;
}
echo ThreeDigits('12');
// 012
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!