Strings strtok
(PHP 4, PHP 5, PHP 7, PHP 8)
strtok — 문자열 토큰화
설명
strtok(string $string
, string $token
): string|false
대체 서명(명명된 인수에서는 지원되지 않음):
strtok(string $token
): string|false
strtok()은 문자열(string
)을 더 작은 문자열(토큰)로 분할하며 각 토큰은 token
의 문자로 구분됩니다. 즉, "This is an example string"과 같은 문자열이 있는 경우 공백 문자를 token
으로 사용하여 이 문자열을 개별 단어로 토큰화할 수 있습니다.
strtok에 대한 첫 번째 호출만 string
인수를 사용합니다. strtok에 대한 모든 후속 호출은 토큰이 현재 문자열의 위치를 추적하기 때문에 사용할 token
만 필요합니다. 다시 시작하거나 새 문자열을 토큰화하려면 string
인수로 strtok를 다시 호출하여 초기화하면 됩니다. token
매개변수에 여러 토큰을 넣을 수 있습니다. token
인수의 문자 중 하나가 발견되면 문자열이 토큰화됩니다.
메모: 이 함수는 explode()에 익숙할 것으로 예상되는 것과 약간 다르게 동작합니다. 첫째, 구문 분석된 문자열에서 두 개 이상의 연속 token
문자는 단일 구분 기호로 간주됩니다. 또한 문자열의 시작 또는 끝에 있는 token
은 무시됩니다. 예를 들어 문자열 ";aaa;;bbb;"
인 경우 ";"
를 사용하여 strtok()에 대한 연속적인 호출이 사용됩니다. token
으로 "aaa" 및 "bbb" 문자열을 반환한 다음 false
를 반환합니다. 결과적으로 문자열은 두 개의 요소로만 분할되는 반면, explode(";", $string)
은 5개의 요소로 구성된 배열을 반환합니다.
매개변수
string
- 문자열이 더 작은 문자열(토큰)로 분할됩니다.
token
string
을 분할할 때 사용되는 구분 기호입니다.
반환 값
문자열 토큰이거나 더 이상 사용할 수 있는 토큰이 없으면 false
입니다.
Examples
예제 #1 strtok() 예제
<?php
$string = "This is\tan example\nstring";
/* Use tab and newline as tokenizing characters as well */
$tok = strtok($string, " \n\t");
while ($tok !== false) {
echo "Word=$tok<br />";
$tok = strtok(" \n\t");
}
?>
예제 #2 빈 부분에 대한 strtok() 동작이 발견되었습니다.
<?php
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>
위의 예는 다음을 출력합니다
string(9) "something" bool(false)
예제 #3 strtok()과 explode()의 차이점
<?php
$string = ";aaa;;bbb;";
$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";
$parts = explode(";", $string);
echo json_encode($parts),"\n";
위의 예는 다음을 출력합니다
["aaa","bbb"] ["","aaa","","bbb",""]
메모
경고 이 함수는 부울 false
을 반환할 수 있지만 false
으로 평가되는 부울이 아닌 값을 반환할 수도 있습니다. 자세한 내용은 Booleans 섹션을 참조하세요. 이 함수의 반환 값을 테스트하려면 the ===
operator를 사용하십시오.
기타
- explode() - 문자열을 문자열로 분할