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

PHP mb_strcut() 함수 – 바이트 단위로 문자열 자르기 완벽 정리

PHP의 mb_strcut() 함수는 지정한 문자열의 일부를 추출하는 데 사용됩니다. 이 함수는 문자가 아닌 바이트(byte) 단위로 동작한다는 점이 특징입니다. 만약 잘라내는 위치가 멀티바이트 문자(한글, 일본어 등)의 중간에 걸린다면, 해당 문자의 첫 번째 바이트부터 잘라내어 문자가 깨지지 않도록 처리합니다.

구문(Syntax)

string mb_strcut(
   $str_string,
   $int_start,
   $int_length = null,
   $str_encoding = null
);

사용 예시:

mb_strcut(
   string = "Onlinetutorial",
   int = 6,
   length = 5,
   encoding = "UTF-8"
);

매개변수(Parameters)

mb_strcut() 함수는 다음 네 가지 매개변수를 받습니다.

  • str_string − 잘라낼 대상이 되는 원본 문자열입니다.

  • int_start − 추출을 시작할 위치입니다. 양수일 경우 문자열의 시작 바이트를 0으로 간주하고 해당 위치부터 반환합니다. 예를 들어 "onlinetutorial"이라는 문자열에서 0번째 바이트는 'o', 1번째 바이트는 'n'입니다. 음수를 지정하면 문자열 끝에서부터 거꾸로 계산합니다.

  • 음수 start의 절댓값이 문자열 전체 길이보다 크면, 문자열의 맨 처음부터 추출을 시작합니다.

  • int_length − 추출할 바이트 단위의 길이입니다. 이 값을 생략하거나 NULL을 전달하면 문자열 끝까지 모든 바이트를 추출합니다. 음수를 지정하면 문자열 끝에서부터 해당 바이트 수만큼 앞선 지점에서 추출이 종료됩니다.

  • encoding − 문자 인코딩을 지정하는 매개변수입니다. 생략하거나 NULL을 전달하면 PHP의 내부 인코딩(internal encoding) 값이 사용됩니다.

반환 값(Return Values)

mb_strcut()은 start와 length 매개변수로 지정된 조건에 따라 잘라낸 문자열의 일부를 반환합니다.

예제(Example)

<?php
   // UTF-8 인코딩 사용
   // "Onlinetutorial" 문자열을 6번째 바이트부터 5바이트만큼 잘라냄
   $string = mb_strcut("Onlinetutorial", 6, 5, "UTF-8");
   $str = mb_strtoupper($string);

   // 출력 결과: "TUTOR"
   print_r($str);
?>

실행 결과(Output)

TUTOR

위 예제에서 "Onlinetutorial" 문자열의 6번째 바이트부터 5바이트를 잘라내면 "tutor"가 되고, mb_strtoupper() 함수로 대문자로 변환하여 최종적으로 "TUTOR"가 출력됩니다. 이처럼 mb_strcut()은 영문뿐 아니라 한글·일본어 같은 멀티바이트 문자열도 인코딩을 지정해 안전하게 다룰 수 있어, 실무에서 문자열을 자를 때 유용하게 활용됩니다.