PHP에서 문자열을 다룰 때 특정 구분자로 문자열을 나누어 배열로 변환하는 기능이 필요할 때가 많습니다.
예를 들어, 쉼표(,)로 구분된 데이터(csv) 처리, 사용자 입력 데이터 파싱, URL 처리 등 다양한 작업에서 사용됩니다.
이러한 기능을 수행하는 대표적인 함수가 바로 explode() 입니다.
이 글에서는 PHP explode() 함수의 사용법, 다양한 활용 예제, 유용한 팁과 주의사항을 체계적으로 정리하겠습니다.
1. explode() 함수란?
✅ 기본 문법
array explode(string $separator, string $string, int $limit = PHP_INT_MAX)
✅ 매개변수 설명
매개변수 설명
$separator | 문자열을 나눌 구분자 |
$string | 분할할 원본 문자열 |
$limit (선택) | 최대 분할 개수 (기본값: 문자열 전체) |
✅ 반환값
- 구분자로 문자열을 나눈 후 배열을 반환
- $limit을 설정하면 최대 $limit개까지 나누고 나머지는 마지막 요소에 저장
2. explode() 기본 예제
🔹 쉼표(,)를 기준으로 문자열 나누기
<?php
$text = "Apple,Banana,Cherry";
$array = explode(",", $text);
print_r($array);
?>
🔹 실행 결과
Array
(
[0] => Apple
[1] => Banana
[2] => Cherry
)
➡ 문자열을 쉼표 ,를 기준으로 나누어 배열로 변환되었습니다.
🔹 공백( )을 기준으로 문자열 나누기
<?php
$text = "Hello PHP World";
$array = explode(" ", $text);
print_r($array);
?>
🔹 실행 결과
Array
(
[0] => Hello
[1] => PHP
[2] => World
)
➡ 공백( )을 기준으로 나누어 각 단어를 배열 요소로 저장했습니다.
3. explode()의 $limit 옵션 활용
🔹 $limit을 설정하여 최대 분할 개수 제한
<?php
$text = "one|two|three|four|five";
$array = explode("|", $text, 3);
print_r($array);
?>
🔹 실행 결과
Array
(
[0] => one
[1] => two
[2] => three|four|five
)
➡ 최대 3개의 요소로 분할되었으며, 남은 문자열은 마지막 요소에 포함되었습니다.
🔹 $limit이 음수일 때 (끝에서 제외)
<?php
$text = "apple|banana|cherry|grape|mango";
$array = explode("|", $text, -2);
print_r($array);
?>
🔹 실행 결과
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
➡ 뒤에서 2개의 요소(grape, mango)를 제외하고 배열 생성되었습니다.
4. explode()의 실용적인 활용 예제
🔹 1) CSV 데이터 처리
<?php
$csv = "John,25,Developer,New York";
$data = explode(",", $csv);
echo "이름: $data[0]\n";
echo "나이: $data[1]\n";
echo "직업: $data[2]\n";
echo "도시: $data[3]\n";
?>
➡ 쉼표(,)로 구분된 데이터를 분할하여 배열로 변환할 수 있습니다.
🔹 2) URL 슬래시(/)를 기준으로 분할
https://example.com/products/electronics/laptop";
$segments = explode("/", $url);
print_r($segments);
?>
➡ URL을 /을 기준으로 나누어 경로 정보를 배열로 저장할 수 있습니다.
🔹 3) 사용자 입력 값 처리
<?php
$tags = "php,html,css,javascript";
$tagArray = explode(",", $tags);
print_r($tagArray);
?>
➡ 사용자 입력된 태그를 쉼표(,) 기준으로 나누어 배열로 저장할 수 있습니다.
🔹 4) 여러 개의 구분자 처리 (preg_split() 활용)
explode()는 하나의 구분자만 사용할 수 있지만, 여러 개의 구분자를 사용할 때는 preg_split()을 활용해야 합니다.
<?php
$text = "apple, banana; grape|orange";
$splitArray = preg_split("/[,;|]/", $text);
print_r($splitArray);
?>
🔹 실행 결과
Array
(
[0] => apple
[1] => banana
[2] => grape
[3] => orange
)
➡ 쉼표(,), 세미콜론(;), 파이프(|) 모두 구분자로 사용하여 문자열을 분할할 수 있습니다.
5. explode()와 implode() 비교
함수 설명
explode() | 문자열을 특정 구분자로 나누어 배열로 변환 |
implode() | 배열 요소를 특정 구분자로 연결하여 문자열로 변환 |
✅ 예제 (explode() → implode() 변환)
<?php
$text = "Apple,Banana,Cherry";
$array = explode(",", $text);
$newString = implode(" - ", $array);
echo $newString;
?>
🔹 실행 결과
Apple - Banana - Cherry
➡ explode()로 배열을 만든 후, 다시 implode()로 문자열을 만들 수 있습니다.
6. explode() 사용 시 주의할 점
✅ 구분자가 문자열 내에 없으면 배열 요소 1개 반환
<?php
$text = "Hello World";
$array = explode(",", $text);
print_r($array);
?>
🔹 실행 결과
Array
(
[0] => Hello World
)
➡ 쉼표(,)가 없기 때문에 원본 문자열이 그대로 배열 요소로 저장됨.
✅ 연속된 구분자는 빈 요소를 생성
<?php
$text = "apple,,banana,grape";
$array = explode(",", $text);
print_r($array);
?>
🔹 실행 결과
Array
(
[0] => apple
[1] =>
[2] => banana
[3] => grape
)
➡ explode()는 연속된 구분자가 있을 경우 빈 문자열 요소를 포함합니다.
✅ 공백 제거가 필요하면 array_filter() 사용
<?php
$text = "apple,,banana,grape";
$array = array_filter(explode(",", $text));
print_r($array);
?>
➡ array_filter()를 사용하면 빈 요소가 제거된 배열을 얻을 수 있음.
7. 결론
PHP의 explode() 함수는 문자열을 특정 구분자로 나누어 배열로 변환하는 필수적인 함수입니다.
이를 활용하면 CSV 데이터 처리, 사용자 입력값 검증, URL 분석 등 다양한 작업을 효율적으로 수행할 수 있습니다.
📌 핵심 요약
✔️ explode()는 문자열을 특정 구분자로 나누어 배열로 반환
✔️ $limit을 사용하면 최대 분할 개수를 지정 가능
✔️ 다중 구분자는 preg_split()을 활용
✔️ 연속된 구분자는 빈 요소를 포함할 수 있음
이제 explode()를 활용하여 더욱 효율적인 PHP 개발을 해보세요! 🚀
💡 도움이 되셨다면 공유해주세요! 😊
'💻 자주 쓰는 PHP 함수' 카테고리의 다른 글
[PHP 함수] is_array()로 배열 여부 확인하기 (22) | 2025.03.22 |
---|---|
[PHP 함수] in_array() 함수로 배열 내에 특정 값의 존재 여부 확인하기 (16) | 2025.03.21 |
[PHP 함수] strpos()로 문자열 찾기 (12) | 2025.03.20 |
[PHP 함수] array_merge() 함수로 배열 합치기 (10) | 2025.03.20 |
[PHP 함수] substr() 함수로 문자열 자르기 (0) | 2025.03.19 |