代码之家  ›  专栏  ›  技术社区  ›  Dipak

php strtok分割字符串的替代方法

php
  •  0
  • Dipak  · 技术社区  · 6 年前

    strtok 与其他函数(如explode when string have split)相比,它被推荐和首选,因为它一次只返回一个片段,而随后的每个调用都返回下一个片段。

    但在这里,是不是换个更好 斯特托克 (第一条路)第二条路?我优先考虑第二个,因为它编码较少,但不知道大字符串中的性能和内存消耗。哪一个最好?

    $stdt='4-50';    
    

    $stdt_cut = strtok( $stdt, '-' );
    $stdt_final = strtok( '' );
    echo $stdt_final;
    //output is 50
    

    echo substr(strstr($stdt, '-'), 1)
    //output is 50
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Elementary    6 年前

    strstr的原型是:

    string strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] )
    

    以及功能

    大海捞针的发生。

    基于此: $stdt='4-50';
    在此步骤中: strstr($stdt, '-');

    因此,您可以有效地使用:

    substr(strstr($stdt, '-'), 1);

    ltrim(strstr($stdt, '-'),'-');

    但在您的情况下,一个真正快速的方法可能是,strpo比strstrstr消耗更少,速度更快,而且还因为您使用了所有相同的substr:

    substr($stdt,strpos($stdt,'-')+1)