PHP入門 文字列関数 文字列を大文字、小文字で変換する(mb_convert_case関数)

文字列の大文字/小文字を変換するには、mb_convert_case関数を使用します。

構文:mb_convert_case関数

mb_convert_case(string $string , int $mode [, ?string $encoding]):string
$string対象の文字列
$mode変換モード
$encoding使用する文字エンコーディング(省略時はdefault_charsetパラメータの値)

変換モード

モード概要
MB_CASE_UPPER小文字⇒大文字に変換
MB_CASE_LOWER大文字⇒小文字に変換
MB_CASE_TITLE先頭文字を大文字に変換(それ以外は小文字)
MB_CASE_XXXXX_SIMPLE文字列長が変化しない変換(XXXXXはLOWER、UPPER、TITLE)

例:

<?php 
  $data1 = 'Php project';
  $data2 = 'PHPプロジェクト';
  $data3 = 'Fußball';

  print mb_convert_case($data1, MB_CASE_UPPER);       //結果:PHP PROJECT
  print mb_convert_case($data1, MB_CASE_LOWER);       //結果:php project
  print mb_convert_case($data1, MB_CASE_TITLE);       //結果:Php Project

  print mb_convert_case($data2, MB_CASE_LOWER);       //結果:phpプロジェクト➊

  print mb_convert_case($data3, MB_CASE_UPPER);       //結果:FUSSBALL➋
  print mb_convert_case($data3, MB_CASE_UPPER_SIMPLE);//結果:FUßBALL ➋
  

➊のマルチバイト文字の変換も問題なく動作します。MB_CASE_XXXXXX_SIMPLEは、シンプルな文字列長が変化しない変換です。たとえばドイツ語のß(エスツェット)は「ss」を表すので、MB_CASE_UPPERでは分解されて「FUSSBALL」となります。一方、MB_CASE_UPPER_SIMPLEでは「FUßBALL」で、文字列長が維持されます。