반응형
안녕하세요, 토스트데브입니다!
이번 글에서는 문자열을 잘라내거나 나누는 함수들을 정리해봅니다.
특히 한글 같은 멀티바이트 문자 처리에 주의해야 하는 부분도 함께 다룹니다.
✅ 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 #코딩입문 #문자열함수
반응형
'Programming > PHP' 카테고리의 다른 글
[PHP] #17 PHP 문자열 함수, 대소문자 및 첫 글자 변환 함수 간단 정리 (2) | 2025.08.06 |
---|---|
[PHP] #16 PHP 문자열 함수, 문자열 길이 및 정보 확인 함수 총정리! (1) | 2025.08.05 |
[PHP] #15 PHP로 JSON 응답처리, 파싱부터 API 응답까지 완벽 정리! (3) | 2025.07.26 |
[PHP] #14 PHP로 XML 응답 처리 하는 방법, 외부 데이터 읽기 및 파싱 가이드! (0) | 2025.07.25 |
[PHP] #13 PHP 세션(Session)과 쿠키(Cookie) 완벽 이해하기 (2) | 2025.07.24 |