代码之家  ›  专栏  ›  技术社区  ›  Jé Queue

PHP<5.3中的PHP preg\u filter()替换?

  •  0
  • Jé Queue  · 技术社区  · 14 年前

    必须在只有PHP5.2.8的共享服务器上部署一些PHP代码。除了 preg_filter()

    有人能推荐一个简单的替代品吗 预滤器() 在PHP5.2中?

    1 回复  |  直到 14 年前
        1
  •  6
  •   shamittomar    14 年前

    PHP手册上说 preg_filter() preg_replace()

    所以,你可以使用 preg_replace array_diff 要获得类似于PHP5.2.x中preg\u filter的结果,请执行以下操作:

    <?php
    $subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); 
    $pattern = array('/\d/', '/[a-z]/', '/[1a]/'); 
    $replace = array('A:$0', 'B:$0', 'C:$0'); 
    
    $result = preg_replace($pattern, $replace, $subject);
    var_dump($result);
    
    //take difference of preg_replace result and subject
    $preg_filter_similar = array_diff($result, $subject);
    
    var_dump($preg_filter_similar);
    ?>
    

    array
      0 => string 'A:C:1' (length=5)
      1 => string 'B:C:a' (length=5)
      2 => string 'A:2' (length=3)
      3 => string 'B:b' (length=3)
      4 => string 'A:3' (length=3)
      5 => string 'A' (length=1)
      6 => string 'B' (length=1)
      7 => string 'A:4' (length=3)
    array
      0 => string 'A:C:1' (length=5)
      1 => string 'B:C:a' (length=5)
      2 => string 'A:2' (length=3)
      3 => string 'B:b' (length=3)
      4 => string 'A:3' (length=3)
      7 => string 'A:4' (length=3)
    

    这和 preg_filter() output

    Array
    (
        [0] => A:C:1
        [1] => B:C:a
        [2] => A:2
        [3] => B:b
        [4] => A:3
        [7] => A:4
    )