2011-11-20 67 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