정의 및 사용 방법
- PHP 버전
- 8.4+
mb_trim() 함수는
문자열의 양쪽 끝에서 공백 또는 매개변수로 지정된 문자열을 제거합니다.
멀티바이트로된 공백과 문자열도 안전하게 작동합니다.
이 함수는 입력받은 문자열(특히, 다국어) 데이터의 앞뒤에 혹시 모를 공백을 제거하는데 주로 사용됩니다.
특징
mb_trim()함수는trim()함수의 멀티바이트 지원 버전입니다.- PHP 8.4.0에서 도입된 함수로 PHP 8.4.0 이전의 버전에서는 호환되지 않습니다.
기본 예제
/* 문자열의 양쪽 끝에서 공백을 제거 */
$string = ' hello world ';
$trimmed = mb_trim($string);
var_dump($trimmed); // 출력: string(11) "hello world"
/* 매개변수로 지정된 문자열을 제거 */
$string = 'hello world';
$trimmed = mb_trim($string, 'he');
var_dump($trimmed); // 출력: string(9) "llo world"
/* 주의! 한글과 같은 multi-byte 문자열을 지원함 */
$string = '환영합니다.';
$trimmed = mb_trim($string, '환영');
var_dump($trimmed); // 출력: string(10) "합니다."
구문
mb_trim(string $string, ?string $characters = null, ?string $encoding = null): string
매개변수
$string |
필수. 제거할(trim) 문자열입니다. |
|---|---|
$characters |
옵션. 제거할 문자열입니다. 이 값을 생략하면 다음의 공백 문자(멀티바이트 공백 문자 포함)가 제거됩니다.
|
$encoding |
옵션. 문자열의 인코딩을 지정합니다.
기본값은 null이며, 생략하거나 null을 전달하면 내부 문자 인코딩 값이 사용됩니다.
|
반환 값
문자열의 양쪽 끝에서 공백 또는 매개변수로 지정된 문자열을 제거(trim)한 문자열을 반환합니다.
매개변수로 지정된 문자열을 제거
mb_trim() 함수는 $characters에 제거할 문자열을 지정하면 문자열의 양쪽 끝에서 지정된 문자열을 제거할 수 있습니다.
trim()은 이 매개변수의 값으로 한글이나 일본어와 같은 멀티바이트를 지원하지 않지만, mb_trim() 함수는 멀티바이트를 지원합니다.
trim() 함수는 멀티바이트를 지원하지 않습니다.
/* 주의! 한글과 같은 multi-byte 문자열을 지원하지 않음
인코딩 문제가 발생 */
$string = '환영합니다.';
$trimmed = trim($string, '환영');
var_dump($trimmed); // 출력: string(9) "��니다."
mb_trim() 함수는 멀티바이트를 지원합니다.
$string = '환영합니다.';
$trimmed = mb_trim($string, '환영');
var_dump($trimmed); // 출력: string(10) "합니다."
활용 예제
mb_trim() 함수는 주로 입력 받은 문자열의 양쪽 끝의 공백(공백, 탭, 개행 등)을 사전에 필터링(제거)하는데 사용됩니다. 이는 사용자로부터의 입력이나 외부 데이터를 처리할 때, 문자열을 정리하고 데이터의 일관성을 유지하기 위해 자주 사용되는 작업 중 하나입니다.
특히, 입력받은 문자열(특히, 다국어) 데이터의 앞뒤에 혹시 모를 공백을 제거할 때 유용합니다.
다국어 공백이 포함될 수 있는 사용자 이름 입력 처리
/* 일반 trim()을 사용했다면 인식하지 못했을 특수한 유니코드 공백(멀티바이트 공백)들까지
안전하게 제거하므로, 데이터베이스 저장이나 본인 확인 로직에서
발생할 수 있는 잠재적인 오류를 방지합니다.
*/
$username = mb_trim($_POST['username']); // 사용자 입력에서 양쪽 끝의 공백과 멀티바이트 공백을 제거
if (empty($username)) {
echo "사용자 이름을 정확히 입력해 주세요.";
} else {
// 사용자 이름을 데이터베이스에 저장하는 예시
$query = "INSERT INTO users (username) VALUES ('$username')";
// 이 후 데이터베이스 쿼리 실행...
}
참고문헌
같이 보기
- PHP trim() 함수 – 문자열의 양쪽 끝에서 공백 또는 지정된 문자열 제거
- PHP is_string() 함수 - 변수의 문자열(string) 타입 확인
- PHP strlen() 함수 - 문자열 길이 확인
- PHP str_replace() 함수 - 문자열에서 특정 문자열을 다른 문자열로 바꾸는 함수
- PHP preg_replace() 함수
- PHP strpos() 함수 - 대소문자 구분해서 문자열에 특정 문자 포함 여부 확인
- PHP stripos() 함수 - 대소문자를 구분 없이 문자열에 특정 문자 포함 여부 확인
- PHP mb_strpos() 함수 - strpos()의 한글 지원 기능 제공
- PHP mb_stripos() 함수 - stripos()의 한글 지원 기능 제공
- PHP preg_match() 함수 - 개념 정리 및 사용 예제
- PHP preg_match_all() 함수 - 개념 정리 및 사용 예제
- PHP str_pad() 함수 – 문자열을 지정된 길이까지 다른 문자열로 채우기
- PHP mb_str_pad() 함수 – str_pad()의 한글 지원 기능 제공
- 자바스크립트 trim() 함수 - 문자열 앞뒤 공백 제거