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() - 문자열을 문자열로 분할