Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP strtok() 함수 완벽 정리 – 문자열을 토큰 단위로 분리하는 방법

PHP strtok() 함수란?

PHP의 strtok() 함수는 문자열을 지정한 구분자를 기준으로 잘라내어 작은 조각, 즉 토큰(token) 단위로 분리하는 함수입니다. 호출 시마다 문자열에서 다음 토큰을 하나씩 꺼내어 반환하며, 더 이상 남은 토큰이 없으면 false를 반환합니다.

특히 strtok()는 내부적으로 현재 위치를 기억하기 때문에, 첫 번째 호출 이후에는 구분자만 인자로 전달하여 반복적으로 나머지 토큰을 얻을 수 있다는 점이 특징입니다.

문법(Syntax)

strtok(str, split)

매개변수(Parameters)

  • str − 분리하고자 하는 원본 문자열입니다.

  • split − 문자열을 자를 때 사용할 구분 문자를 하나 이상 지정합니다. 여러 개의 구분 문자를 함께 지정할 수도 있습니다.

반환값(Return)

strtok() 함수는 현재 위치에서 읽어온 문자열 토큰을 반환합니다. 더 이상 분리할 토큰이 존재하지 않으면 false를 반환합니다.

사용 예제

다음은 공백을 구분자로 사용해 문자열을 토큰 단위로 출력하는 예제입니다.

<?php
   $str = "This is it!";
   $token = strtok($str, " ");

   while ($token !== false){
      echo "$token<br>";
      $token = strtok(" ");
   }
?>

위 코드에서는 첫 번째 strtok() 호출 시 원본 문자열과 구분자를 함께 전달하고, while 루프 안에서는 구분자만 전달하여 남은 토큰을 순차적으로 가져옵니다. 토큰이 더 이상 없으면 false가 반환되어 루프가 종료됩니다.

실행 결과(Output)

위 예제를 실행하면 아래와 같은 결과가 출력됩니다.

This<br>is<br>it!<br>

브라우저 화면에서는 각 단어가 줄바꿈되어 다음과 같이 표시됩니다.

This
is
it!

정리

strtok() 함수는 explode()처럼 한 번에 모든 조각을 배열로 반환하는 것이 아니라, 호출할 때마다 토큰을 하나씩 반환한다는 점에서 차이가 있습니다. 따라서 메모리 사용을 최소화하면서 문자열을 순차적으로 처리해야 할 때 유용하게 활용할 수 있습니다.