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

PHP mb_substr() 함수로 문자열의 원하는 부분만 추출하는 방법

PHP에서 mb_substr() 함수는 주어진 문자열에서 선택된 부분을 반환하는 데 사용됩니다. 이 함수는 멀티바이트(multibyte) 환경에서도 안전하게 동작하는 substr()의 확장형으로, 바이트가 아닌 문자 수를 기준으로 작동한다는 점이 큰 특징입니다.

위치는 문자열의 시작점을 기준으로 계산되며, 첫 번째 문자의 위치는 0, 두 번째 문자는 1과 같이 순차적으로 매겨집니다. 따라서 한글이나 일본어처럼 한 글자가 여러 바이트로 구성되는 언어를 다룰 때도 정확하게 잘라낼 수 있습니다.

문법(Syntax)

string mb_substr(string $string, int $start, ?int $length = null, ?string $encoding = null)

매개변수(Parameters)

mb_substr() 함수는 총 네 개의 매개변수를 받습니다: $string, $start, $length, $encoding.

  • $string — 잘라낼 대상이 되는 원본 문자열입니다. 이 문자열에서 부분 문자열(substring)을 추출하게 됩니다.

$string = mb_substr("Welcome to the online tutorials!", 5, 10, "UTF-8");
  • $start — 추출을 시작할 위치입니다. 값이 0 이상(음수가 아님)일 경우 문자열의 처음부터 계산됩니다. 예를 들어 문자열이 "abcdefg"라면 위치 0은 첫 번째 문자 "a", 위치 1은 "b"를 의미합니다. 반면 음수를 지정하면 문자열의 끝에서부터 거꾸로 계산하여 해당 위치의 문자부터 추출을 시작합니다.

  • $length — 문자열에서 사용할 최대 문자 수입니다. 즉, 시작 위치부터 몇 글자까지 가져올지 결정합니다. 생략하거나 null을 지정하면 시작 위치부터 문자열 끝까지 전부 반환됩니다.

// 5번째 문자부터 10글자를 가져옴 (5, 10, "UTF-8")
  • $encoding — 문자 인코딩 방식을 지정합니다. 이 매개변수를 생략하거나 null로 설정하면 PHP 내부에 설정된 기본 문자 인코딩(internal character encoding) 값이 사용됩니다. 한글 처리 시에는 보통 "UTF-8"을 명시적으로 지정하는 것이 안전합니다.

반환값(Return Values)

mb_substr() 함수는 startlength 매개변수를 기준으로 주어진 문자열에서 선택된 부분 문자열을 반환합니다.

예제 코드

<?php
    // mb_substr 함수는 문자열에서
    // 선택된 부분을 반환합니다
    $string = mb_substr("Welcome to the online tutorials!", 5, 10, "UTF-8");

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

    // 출력 결과는 "me to the"
    echo "$string";
?>

실행 결과

ME TO THE

위 예제에서 "Welcome to the online tutorials!"라는 문자열의 5번째 위치(0부터 시작)부터 10글자인 "me to the"를 추출한 뒤, mb_convert_case() 함수로 대문자로 변환하여 출력했습니다. 이처럼 mb_substr()은 UTF-8 같은 멀티바이트 인코딩 환경에서도 문자 단위로 정확하게 문자열을 자를 수 있어, 다국어 웹 서비스 개발에 필수적인 함수입니다.