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()은 영문뿐 아니라 한글·일본어 같은 멀티바이트 문자열도 인코딩을 지정해 안전하게 다룰 수 있어, 실무에서 문자열을 자를 때 유용하게 활용됩니다.