이 글에서는 PHP의 사전 정의된 내장 함수인 explode() 함수의 개념과 실전 활용 방법을 자세히 알아보겠습니다.
PHP의 explode() 함수는 하나의 문자열을 특정 기준으로 나누어 배열 형태로 만들어 주는 함수입니다. 즉, 긴 문자열을 더 작은 단위로 쪼개고 싶을 때 사용하며, 이때 문자열을 나누는 기준점을 구분자(delimiter)라고 부릅니다.
기본 문법
explode(separator, string, limit)
explode() 함수는 세 개의 매개변수를 받으며, 그중 두 개는 필수이고 하나는 선택 사항입니다. 각 매개변수를 하나씩 살펴보겠습니다.
1. separator (구분자) — 필수
문자열을 나눌 기준이 되는 문자를 지정합니다. 문자열 내에서 이 구분자가 발견되는 지점마다 하나의 배열 요소가 끝나고 다음 요소가 시작됩니다.
2. string (입력 문자열) — 필수
배열로 분리하고자 하는 원본 문자열입니다.
3. limit (요소 개수 제한) — 선택
반환되는 배열의 요소 개수를 제한하는 옵션 매개변수입니다. 양수, 음수, 0 등 모든 정수를 사용할 수 있습니다.
- 양수: 최대 해당 개수만큼의 요소를 반환하며, 마지막 요소에 남은 문자열 전체가 포함됩니다.
- 음수: 마지막 N개의 요소를 제외한 나머지를 반환합니다.
- 0 또는 생략 시: 구분자로 분리된 전체 요소가 담긴 배열이 반환됩니다.
참고: 세 번째 매개변수(limit)를 지정하지 않으면, 구분자로 문자열을 분리한 결과로 생성된 모든 요소가 배열에 포함됩니다.
사용 예제
<?php
$Original = "Hello,Welcome To Tutorials Point";
print_r(explode(" ", $Original));
print_r(explode(" ", $Original, 3));
?>실행 결과
Array ( [0] => Hello,Welcome [1] => To [2] => Tutorials [3] => Point ) Array ( [0] => Hello,Welcome [1] => To [2] => Tutorials Point )
결과 해설
위 예제의 첫 번째 호출에서는 세 번째 매개변수를 전달하지 않았습니다. 따라서 공백(" ")을 구분자로 하여 원본 문자열이 네 개의 요소로 분리된 배열이 반환됩니다.
반면 두 번째 호출에서는 세 번째 매개변수로 3을 전달했기 때문에, 배열이 정확히 세 개의 요소만 갖도록 제한됩니다. 이때 세 번째 요소에는 남은 문자열 전체("Tutorials Point")가 하나의 값으로 포함되는 점에 유의하세요.
이처럼 explode() 함수는 CSV 데이터 파싱, URL 경로 분리, 사용자 입력 처리 등 문자열을 구조화해야 하는 다양한 상황에서 매우 유용하게 활용할 수 있습니다.