mb_convert_case

関数の概要

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アプリケーションや日本語を含む文字列処理で活躍します。大文字、小文字、タイトルケースのいずれかを簡単に切り替えられるため、文字列の表示整形やデータの正規化に役立ちます。必ず文字コードを意識し、適切なエンコーディングを指定して使用しましょう。