PHP strtok 重置?

发布于 2024-12-17 03:06:20 字数 71 浏览 2 评论 0原文

我以前没有使用过strtok,PHP手册没有给出很好的解释。

我想多次循环遍历标记化字符串。如何将其重置回开头?

I've not used strtok before, the PHP manual doesn't give a very good explanation.

I want to loop through the tokenized string more than once. How do I reset it back to the beginning?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷情妓 2024-12-24 03:06:20

只需再次使用两个参数调用 strtok 即可:

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

来自 strtok官方文档

要重新开始,或者标记一个新字符串,您只需调用 strtok 即可
再次使用字符串参数来初始化它。

Just call again strtok with two params and that is:

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

From the strtok official doc:

To start over, or to tokenize a new string you simply call strtok with
the string argument again to initialize it.

零度° 2024-12-24 03:06:20

正如文档所说:

请注意,只有第一次调用 strtok 时才使用字符串参数。
对 strtok 的每个后续调用只需要使用令牌,因为它
跟踪它在当前字符串中的位置。 重新开始,或者
标记一个新字符串,您只需使用字符串参数调用 strtok
再次初始化它。
请注意,您可以在
令牌参数。当以下任一情况时,该字符串将被标记化:
找到参数中的字符。

As the documentation says:

Note that only the first call to strtok uses the string argument.
Every subsequent call to strtok only needs the token to use, as it
keeps track of where it is in the current string. To start over, or to
tokenize a new string you simply call strtok with the string argument
again to initialize it.
Note that you may put multiple tokens in the
token parameter. The string will be tokenized when any one of the
characters in the argument are found.

只怪假的太真实 2024-12-24 03:06:20

正如其他人所说,您必须再次调用 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

You have to call again strtok() as the others said.

Here's a function which simply returns an array for you:

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

  do
  {
    $tokens[] = $tok;    

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

  return $tokens;
}

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文