【问题标题】:Doubt regarding Strtok in PHPPHP中关于Strtok的疑问
【发布时间】:2011-09-09 13:42:33
【问题描述】:
<?php
    $string = "sandesh commented on institue international institute of technology";
    /* Use tab and newline as tokenizing characters as well  */
    $tok = strtok($string, " \n\t");
    echo $tok
    ?>

上面的代码给了我输出sandesh。

但是如果我想要输出“commented on Institute International Institute of Technology”,那么我应该如何修改上面的代码。

感谢和问候 桑德什

【问题讨论】:

    标签: php strtok


    【解决方案1】:
    <?php
    $string = "sandesh commented on institue international institute of technology";
    echo substr($string,strpos($string," ")+1);
    

    文档

    编辑

    我实际上需要第四个标记之后的字符串

    <?php
    $string = "sandesh commented on institue international institute of technology";
    $str_array = explode(" ",$string);
    $str_array = slice($str_array,4);
    echo implode(" ",$str_array);
    

    【讨论】:

    • 嗨,这里我实际上需要第四个标记之后的字符串,因为我可以重复此操作 4 次,有什么方法可以直接获取第四个标记之后的字符串,而无需进入循环。
    【解决方案2】:

    因为您是基于空间进行标记,strtok 为您提供了第一个单词。下次您调用 strtok 时,您将得到第二个单词,依此类推。鉴于您拥有的字符串和您提供的标记,无法将字符串的其余部分作为单个标记获取。

    【讨论】:

    • 谢谢..我能知道原因吗,我想它会记住指针。
    • 是的;它的工作原理与 C 的 strtok 完全一样。它标记您提供的字符串,然后您循环它,执行任何操作。
    【解决方案3】:

    有什么方法可以直接获取第四个令牌之后的字符串, 没有进入循环。

    这将一次获得第四个空格之后的字符串。

    <?php
    $string = "sandesh commented on institue international institute of technology";
    preg_match('/(?:.*?\s){4}(.*)/', $string, $m);
    $new_string = $m[1];
    echo $new_string;
    ?>
    

    输出

    国际技术学院

    【讨论】:

      猜你喜欢
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 2012-04-02
      • 2013-08-08
      • 1970-01-01
      • 2019-05-26
      相关资源
      最近更新 更多