mb_strlen()やstrupper()は業務でも使っていましたが、その他の文字列関数についても調べてみたので、この機会にまとめてみました。
mb_strlen()
- 文字列の長さを取得する。
- マルチバイト文字(日本語)も1文字としてカウントされる。
- バイト数の長さを取得したい場合は、後述のstrlen()を使用する。
$cnt = mb_strlen('test');
print $cnt; //4が出力される。
strlen()
- 文字列の長さをバイト数で返す。
- 日本語は文字エンコーディングによって1文字の長さが異なるので注意が必要。
- UTF-8だと日本語1文字は3バイト。
$cnt = strlen('㈱simple-way');
print $cnt; //13が出力される。(日本語1文字で3バイト、半角文字10文字で10バイト)
mb_convert_kana()
- 半角⇔全角の変換を行う。
- 第2引数に下記オプションを渡すことで変換方法を指定。
オプション | 内容 |
---|---|
r | 全角英字を半角に変換する。 |
R | 半角英字を全角に変換する。 |
n | 全角数字を半角に変換する。 |
N | 半角数字を全角に変換する。 |
a | 全角英数字を半角に変換する。 |
A | 半角英数字を全角に変換する。 |
s | 全角スペースを半角に変換する。 |
S | 半角スペースを全角に変換する。 |
k | 全角カタカナを半角カタカナに変換する。 |
K | 半角カタカナを全角カタカナに変換する。 |
h | 全角ひらがなを半角カタカナに変換する。 |
H | 半角カタカナを全角ひらがなに変換する。 |
c | 全角カタカナを全角ひらがなに変換する。 |
C | 全角ひらがなを全角カタカナに変換する。 |
V | 濁点付きの文字を一文字に変換する。 |
$str = '0 1 2 A B Cア イ う'."\n";
print mb_convert_kana($str,'r'); //0 1 2 A B Cア イ う
print mb_convert_kana($str,'n'); //0 1 2 A B Cア イ う
print mb_convert_kana($str,'a'); //0 1 2 A B Cア イ う
print mb_convert_kana($str,'akh'); //0 1 2 A B Cア イ ウ
$str = '0 1 2 A B Cガギグ'."\n";
print mb_convert_kana($str,'R'); //0 1 2 A B Cガギグ
print mb_convert_kana($str,'N'); //0 1 2 A B Cガギグ
print mb_convert_kana($str,'A'); //0 1 2 A B Cガギグ
print mb_convert_kana($str,'AHV'); //0 1 2 A B Cがぎぐ
strtolower()/strtoupper()
- 文字列を大文字⇔小文字に変換します。
- マルチバイト文字も変換したい場合は、後述のmb_strtolower()/mb_strtoupper()を使用する。
$str = 'ABCDA B C D';
print strtolower($str); //abcdA B C D
$str = 'abca b c ';
print strtoupper($str); //ABCa b c
mb_strtolower()/mb_strtoupper()
マルチバイトを含む文字列を大文字⇔小文字に変換します。
$str = 'ABCDA B C D';
print mb_strtolower($str); //abcda b c d
$str = 'abca b c ';
print mb_strtoupper($str); //ABCA B C
ucfirst()/lcfirst()
先頭の文字を大文字/小文字に変換する。
$str = 'abc';
print ucfirst($str); //Abc
$str = 'ABC';
print lcfirst($str); //aBC