関数の概要
mb_strtoupperは、PHPのマルチバイト文字列を大文字に変換する関数です。日本語やその他のマルチバイト文字を扱う際に、単純なstrtoupper関数では正しく変換できないため、マルチバイト対応のこの関数を使うことで、文字コードを意識せずに大文字変換が可能になります。
パラメータの説明
- string $string : 大文字に変換したい対象の文字列。
- string|null $encoding : 文字エンコーディング。省略時は内部文字エンコーディングが使われます。例として “UTF-8” や “SJIS” などが指定可能です。
戻り値
変換後の文字列を返します。入力文字列のマルチバイト対応の大文字変換結果です。関数の実行に失敗した場合は、通常は元の文字列が返されます。
使用例
基本的な使い方 (UTF-8を想定)
$input = "こんにちは世界";
$output = mb_strtoupper($input, "UTF-8");
echo $output; // 結果: こんにちは世界(大文字英字は変換されるが、日本語は変わらない)
日本語は大文字・小文字の区別がないため変換ありませんが、英字や記号などは正しく大文字化されます。
英字を含む文字列の大文字変換
$input = "Hello こんにちは World!";
$output = mb_strtoupper($input, "UTF-8");
echo $output; // 結果: HELLO こんにちは WORLD!
英字のみが大文字に変換され、日本語はそのまま残ります。
異なるエンコーディングの指定(SJISの場合)
$input = mb_convert_encoding("testTEST", "SJIS", "UTF-8");
$output = mb_strtoupper($input, "SJIS");
echo mb_convert_encoding($output, "UTF-8", "SJIS"); // 結果: TESTTEST
Shift_JISエンコーディングの全角英数字の大文字変換も可能です。適切なエンコーディング指定が重要です。
関連する関数
- mb_strtolower – マルチバイト文字列を小文字に変換します。
- mb_convert_kana – 全角・半角変換などの文字種変換を行う関数です。
- strtoupper – マルチバイト未対応の大文字変換関数。
- mb_detect_encoding – 文字列のエンコーディングを自動判別します。
まとめ
mb_strtoupperは、マルチバイト文字列に対応した大文字変換関数で、特に日本語を含むテキストや多言語対応の環境で便利に使えます。正しい文字エンコーディングを指定することで、英字だけでなく全角英数字なども適切に変換可能です。文字列の大文字化が必要な場合は、まずはこの関数の利用を検討すると良いでしょう。
