允许双点范围语法的原生 PHP 函数

问题描述 投票:0回答:1

一些本机 PHP 字符串函数具有一个参数,该参数是由一个或多个无序字符组成的字符串(也称为“字符掩码”)。在某些情况下,可以使用双点语法来表示字符范围。

例如:

echo trim('foo24', '0..9');
会打印
foo
,因为
2
4
属于
0
9
范围内。

还有哪些具有相同功能的其他原生 PHP 字符串函数?

php string function range
1个回答
6
投票

尊重双点范围表达式的本机 PHP 字符串函数:

  • addcslashes()
    演示

     echo addcslashes('adobe', 'a..e');
     // \a\do\b\e
    
  • chop()
    --
    rtrim()
    的别名(Demo

     echo chop('adobe', 'a..e');
     // ado
    
  • ltrim()
    演示

     echo ltrim('adobe', 'a..e');
     // obe
    
  • rtrim()
    演示

     echo rtrim('adobe', 'a..e');
     // ado
    
  • str_word_count()
    演示

     var_export(
         str_word_count('do not break|on|pipe', 1, '{..}')
     );
     // ['do', 'not', 'break|on|pipe']
    
  • trim()
    演示

     echo trim('adobe', 'a..e');
     // o
    
  • ucwords()
    演示

     echo ucwords('backdoorman', 'a..e');
     // BaCkdOormaN
    

以下是一些本机函数,其中范围表达式未扩展,但可能是该功能的合理候选者:

  • strcspn()
    演示)(扩展是合理的)

     echo strcspn('cdplayer', 'b..e');
     // 6
     // 0 if range enabled
    
  • strpbrk()
    演示)(扩展是合理的)

     echo strpbrk('stackoverflow', 'b..f');
     // flow
     // ckoverflow if range enabled
    
  • strspn()
    演示)(扩展是合理的)

     echo strspn('adobe', 'a..e');
     // 1
     // 2 if range enabled
    
  • strtok()
    演示)(扩展是合理的)

     echo strtok('toddler', 'a..e');
     // toddl
     // to if range enabled
    
  • strtr()
    演示)(超出主题范围,因为从技术上讲不是字符掩码 - 字符顺序很重要)

     echo strtr('adobe', 'a..e', 'A..E');
     // AdobE
     // ADoBE if range enabled
    
© www.soinside.com 2019 - 2024. All rights reserved.