【问题标题】:PHP strtok() Please let me know if I understand this rightPHP strtok() 如果我理解这一点,请告诉我
【发布时间】:2014-11-30 07:20:59
【问题描述】:

这是代码:

<?php
    $string = 'Hey there buddy';
    $token = strtok($string, ' ');
    while($token !== false)
    {
        echo $token."<br/>";
        $token = strtok(' ');
    }
?>

我只是想知道我是否理解这一点。这是我对 strtok() 的看法。要使用 strtok(),首先,您必须将其设置为带有输入字符串(在本例中为 $string)和分隔符(在本例中为'')的变量(在本例中为 $token)。然后你必须在 while 循环中再次使用它,但这一次只指定一个分隔符而不是输入字符串,因为它在我们第一次使用它时已经连接到变量 $string。我说的对吗?

【问题讨论】:

标签: php string strtok


【解决方案1】:

是的,strtok 保留了一个内部缓冲区,来自$string 的第一个人口。它随后返回其中的一部分;每当您传递它时,只需一个新字符即可拆分。

您可以使用do/while 构造来缩短循环,顺便说一句:

do {
    echo $token."<br/>";
}
while (is_str($token = strtok(' ')));

这也是strtok 的缺点。由于它适用于全局内部字符串缓冲区,因此您只能使用一个这样的循环 - 它不适合并行分隔子字符串或同时处理另一个缓冲区。

虽然你只是用一个分隔符分割,你还不如使用 PHP 最过度使用的函数:explode

【讨论】:

  • 谢谢先生。这很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
相关资源
最近更新 更多