関数の概要
PHPの mb_convert_case 関数は、マルチバイト文字列の大文字・小文字変換を行うための関数です。日本語などのマルチバイト文字でも正しく変換できるため、文字コードに依存せず安全に文字ケースを操作したい場合に非常に便利です。
パラメータの説明
string $str:変換したい文字列を指定します。int $mode:変換のモードを指定します。以下の定数が利用可能です。MB_CASE_UPPER:すべて大文字に変換MB_CASE_LOWER:すべて小文字に変換MB_CASE_TITLE:各単語の頭文字だけを大文字に変換
string $encoding = mb_internal_encoding()(省略可):文字コードを指定します。省略時は内部文字エンコーディングが使われます。
戻り値
指定した文字列を変換モードに従って大文字・小文字に変換した結果の文字列を返します。変換に失敗した場合は FALSE を返します。
使用例を複数
基本的な使い方:すべて大文字に変換
<?php
$str = "こんにちは World";
$result = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $result; // こんにちは WORLD
?>
日本語の部分は大文字小文字がないため変わりませんが、アルファベットはすべて大文字になります。
すべて小文字に変換
<?php
$str = "Hello みんな";
$result = mb_convert_case($str, MB_CASE_LOWER, "UTF-8");
echo $result; // hello みんな
?>
英字部分がすべて小文字になり、日本語はそのままです。
タイトルケースに変換(各単語の頭文字のみ大文字)
<?php
$str = "php で マルチバイト";
$result = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $result; // Php デ マルチバイト
?>
英単語や各単語の最初の文字が大文字になり、それ以外は小文字になります。日本語の部分は変わりません。
内部文字エンコーディングを使用した例
<?php
mb_internal_encoding("UTF-8");
$str = "tesT ユニコード";
$result = mb_convert_case($str, MB_CASE_UPPER);
echo $result; // TEST ユニコード
?>
第3引数を省略した場合は内部エンコーディングが使われます。UTF-8環境であれば一般的に問題ありません。
関連する関数
mb_strtoupper():文字列をすべて大文字に変換する(全角対応)mb_strtolower():文字列をすべて小文字に変換する(全角対応)mb_internal_encoding():内部文字エンコーディングの設定・取得
まとめ
mb_convert_case は、マルチバイト対応の大文字・小文字変換に特化した便利な関数です。特に多言語のWebアプリケーションや日本語を含む文字列処理で活躍します。大文字、小文字、タイトルケースのいずれかを簡単に切り替えられるため、文字列の表示整形やデータの正規化に役立ちます。必ず文字コードを意識し、適切なエンコーディングを指定して使用しましょう。
