Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP mb_convert_case() 함수로 문자열 대소문자 변환하는 방법

mb_convert_case()는 PHP에서 기본으로 제공되는 내장 함수로, 지정된 문자열에 대해 대소문자 접기(case folding) 작업을 수행합니다. 멀티바이트 문자열을 안전하게 처리할 수 있어 한글이나 특수문자가 포함된 텍스트도 인코딩 문제 없이 변환이 가능합니다.

문법

string mb_convert_case(string $string, int $mode, ?string $encoding = null)

매개변수

mb_convert_case() 함수는 세 개의 매개변수인 $string, $mode, $encoding을 받아 문자열의 대소문자를 변환합니다.

  • $string: 변환하고자 하는 원본 문자열입니다.

  • $mode: 변환 방식을 결정하는 모드 값입니다. 다음과 같은 상수를 사용할 수 있습니다.

  • MB_CASE_UPPER – 모든 문자를 대문자로 변환
  • MB_CASE_LOWER – 모든 문자를 소문자로 변환
  • MB_CASE_TITLE – 각 단어의 첫 글자만 대문자로 변환
  • MB_CASE_FOLD – 비교를 위한 정규화 형태로 변환
  • MB_CASE_UPPER_SIMPLE / MB_CASE_LOWER_SIMPLE / MB_CASE_TITLE_SIMPLE / MB_CASE_FOLD_SIMPLE – 간단한(simple) 매핑 방식으로 변환
  • $encoding: 문자 인코딩을 지정합니다. 이 값을 생략하거나 null로 설정하면 PHP 내부 문자 인코딩(internal character encoding)이 자동으로 사용됩니다.

반환값

mb_convert_case()는 지정된 모드에 따라 변환이 완료된 문자열을 반환합니다.

참고: PHP 7.3.0부터 MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, MB_CASE_FOLD_SIMPLE 모드가 새롭게 추가되었습니다.

예제 1 – 대문자 및 소문자 변환

<?php
   $string = "Hello World!, Welcome to the online Tutorial";

   // 문자열을 대문자로 변환
   $string = mb_convert_case($string, MB_CASE_UPPER, "UTF-8");
   echo $string;

   // 문자열을 소문자로 변환
   $string = mb_convert_case($string, MB_CASE_LOWER, "UTF-8");
   echo $string;
?>

출력 결과

HELLO WORLD!, WELCOME TO THE ONLINE TUTORIALhello world!, welcome to the online tutorial

예제 2 – 제목 스타일 및 간단 대문자 변환

<?php
   $string = "Hello World!, Welcome to the online Tutorial";

   // MB_CASE_TITLE 사용 – 각 단어의 첫 글자를 대문자로 변환
   $string = mb_convert_case($string, MB_CASE_TITLE, "UTF-8");
   echo $string;

   // MB_CASE_UPPER_SIMPLE 사용 – 간단한 방식으로 대문자 변환
   $string = mb_convert_case($string, MB_CASE_UPPER_SIMPLE, "UTF-8");
   echo $string;
?>

출력 결과

Hello World!, Welcome To The Online TutorialHELLO WORLD!, WELCOME TO THE ONLINE TUTORIAL

이처럼 mb_convert_case() 함수를 활용하면 UTF-8을 포함한 다양한 인코딩 환경에서도 안정적으로 문자열의 대소문자를 변환할 수 있습니다. 일반적인 strtoupper()strtolower() 함수와 달리 멀티바이트 문자를 올바르게 처리하므로, 다국어 프로젝트에서 특히 유용합니다.