2011-11-20 35 views
0

我以前沒有用過strtok,PHP手冊沒有給出很好的解釋。PHP strtok重置?

我想多次循環使用標記化的字符串。我如何重置它回到開始?

+0

真的,-1分這個問題。我在這裏已經有2個星期的會員了,我覺得這裏的大多數成員都是非常優秀的。這個問題的答案對於以前沒有使用該函數的人來說並不明顯,在PHP文檔中沒有很好地解釋它。你們真的期望大家能夠神奇地知道這些問題的答案嗎?網站的重點不在於提問嗎? – Alasdair

回答

3

再打電話strtok有兩個參數,那就是:

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

strtok official doc

要重新開始,或者來標記一個新的字符串,你只需撥打的strtok與 字符串再次參數來初始化它。

+0

我擔心這會是答案,我希望不必單獨存儲字符串。 – Alasdair

+0

不幸的是,這是它的工作方式。 –

2

由於文件說:只有到strtok的第一個調用使用字符串參數

注意。 隨後每次調用strtok都只需要使用令牌,因爲它會跟蹤當前字符串中的位置。 重新開始,或者到 標記一個新的字符串,您只需再次用字符串參數 調用strtok來初始化它。請注意,您可能會在令牌參數 中放置多個令牌。當找到參數中的任何一個 字符時,該字符串將被標記。

2

您必須再次撥打strtok(),正如其他人所說。

下面是簡單地返回一個數組爲你的函數:

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

    do 
    { 
    $tokens[] = $tok;  

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

    return $tokens; 
} 

在codepad.org:http://codepad.org/2ySQ51TC