2011-11-20 3 views
0

전에 strtok을 사용하지 않았습니다. PHP 매뉴얼은 아주 좋은 설명을 제공하지 않습니다.PHP strtok 재설정?

토큰 화 된 문자열을 두 번 이상 반복하려고합니다. 다시 처음으로 다시 설정하려면 어떻게합니까?

+0

정말, -1 점

다음은 단순히 당신을 위해 배열을 반환하는 함수입니다. 나는 약 2 주 동안 여기의 회원이었다. 그리고 나는 회원의 대부분이 매우 엘리트 주의자 다라고하는 인상을 얻는다. 이 질문에 대한 대답은 이전에 함수를 사용하지 않은 사람에게는 분명하지 않지만 PHP 설명서에서 잘 설명하지는 않습니다. 여러분 모두 정말로 모든 사람들이 질문에 대한 답변을 마술처럼 알기를 기대합니까? 사이트의 요점은 질문을하지 않는 것입니까? – Alasdair

답변

3

그냥 다시 두 PARAMS와 strtok를 호출 즉 :

$tok = strtok($string, $tokens); 

strtok official doc에서 :

가 다시 시작하거나 단순히 문자열로 strtok를 호출 할 새 문자열을 토큰 화하는 인수를 다시 초기화하십시오.

+0

그 대답이 될까봐 두렵습니다. 문자열을 별도로 저장할 필요가 없었습니다. – Alasdair

+0

불행히도 당신에게 이것은 작동하는 방식입니다. –

2

문서가 말하기를 : 만 strtok를 처음 호출 문자열 인수를 사용

참고. 이후의 모든 strtok 호출에는 이 현재 문자열에있는 위치를 추적하므로 사용할 토큰 만 있으면됩니다. 다시 시작하거나 토큰 화하려면 새 문자열을 문자열 인수 으로 다시 strtok을 호출하여 초기화하십시오. 토큰 매개 변수 에 여러 개의 토큰을 넣을 수 있습니다. 인수에 문자 중 하나가 있으면 문자열이 토큰 화됩니다.

2

다른 사람들과 마찬가지로 strtok()을 다시 호출해야합니다. codepad.org에

function tokenize($delimiter, $str) 
{ 
    $tokens = array(); 
    $tok = strtok($str, $delimiter); 

    do 
    { 
    $tokens[] = $tok;  

    $tok = strtok($delimiter); 
    } 
    while ($tok !== false); 

    return $tokens; 
} 

:이 질문에 대한 http://codepad.org/2ySQ51TC