Programming/PHP

[PHP] #18 PHP 문자열 함수, 한글도 정확하게! 문자열 추출 및 분할 함수 정리

TOASTDEV 2025. 8. 7. 16:00
반응형

 

안녕하세요, 토스트데브입니다!
이번 글에서는 문자열을 잘라내거나 나누는 함수들을 정리해봅니다.
특히 한글 같은 멀티바이트 문자 처리에 주의해야 하는 부분도 함께 다룹니다.

 

 

✅ substr() – 문자열의 일부분 추출

$str = "toastdev";
echo substr($str, 0, 5);  // 출력: toast

 

  • 인자: (문자열, 시작 위치[, 길이])
  • 영어 등 1바이트 문자에서는 잘 작동하지만,
  • 한글은 깨질 수 있음!
$str = "안녕하세요";
echo substr($str, 0, 2);  // 출력: � (깨짐)

 

 

 

✅ mb_substr() – 멀티바이트 문자열을 정확히 추출

한글처럼 2바이트 이상인 문자를 자를 때는 mb_substr()을 사용해야 합니다.

$str = "안녕하세요";
echo mb_substr($str, 0, 2);  // 출력: 안녕
✅ mb_substr() 을 사용하기 위해선 PHP에서 mbstring 확장 모듈이 활성화되어 있어야 합니다 (보통 기본 설치되어 있음).

 

 

✅ explode() – 문자열을 구분자로 나눠 배열로 변환

$str = "사과,바나나,오렌지";
$fruits = explode(",", $str);

print_r($fruits);
// 출력: ["사과", "바나나", "오렌지"]
  • CSV 문자열, 태그, 카테고리 분리 등에 매우 유용한 함수입니다.

 

 

✅ str_split() – 일정 길이로 문자열 분할

$str = "toast";
print_r(str_split($str, 2));
// 출력: ['to', 'as', 't']

한글은 주의 – str_split()은 멀티바이트 문자열을 깨뜨릴 수 있음

$str = "안녕하세요";
print_r(str_split($str));
// 출력: 깨진 문자 배열

✅ 한글을 문자 단위로 정확히 나누려면 mb_str_split() (PHP 7.4+) 사용

$str = "안녕하세요";
print_r(mb_str_split($str));
// 출력: ['안', '녕', '하', '세', '요']

 

 

✨ 요약

함수 설명 안정성
substr() 문자열 일부 추출 ❌ (깨질 수 있음)
mb_substr() 한글 포함 문자열 추출
explode() 구분자로 나누기
str_split() 일정 길이로 자르기
mb_str_split() 멀티바이트 문자열 자르기

 

 

✅ 보너스: 문자 자르기 실전 예제

$name = "홍길동";

// 이름의 첫 글자만 추출
$first = mb_substr($name, 0, 1);  // 홍

// 마지막 글자만 추출
$last = mb_substr($name, -1);  // 동

 

 

#PHP문자열 #문자열추출 #문자열분할 #mb_substr #explode #mb_str_split #한글처리 #멀티바이트 #PHP기초 #toastdev #코딩입문 #문자열함수

반응형