mb_strtoupper

関数の概要

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は、マルチバイト文字列に対応した大文字変換関数で、特に日本語を含むテキストや多言語対応の環境で便利に使えます。正しい文字エンコーディングを指定することで、英字だけでなく全角英数字なども適切に変換可能です。文字列の大文字化が必要な場合は、まずはこの関数の利用を検討すると良いでしょう。