【问题标题】:How do I replace eregi function with preg_match? [duplicate]如何用 preg_match 替换 eregi 函数? [复制]
【发布时间】:2020-05-15 14:05:09
【问题描述】:

我有一些多年前使用 eregi 为我完成的编码。我知道我需要将其更改为 preg_match 但不知道该怎么做。

代码是:

       if (eregi("\.jpg|\.gif|\.png", $f))
          array_push($files, $path.$f);

任何帮助将不胜感激

谢谢

【问题讨论】:

    标签: php preg-match eregi


    【解决方案1】:

    您应该可以在此处使用 preg_matchi 不区分大小写标志:

    if (preg_match("/\.(?:jpg|gif|png)/i", $f)) {
        array_push($files, $path.$f);
    }
    

    请注意,eregi 函数在 PHP 5.3.0 中已被弃用并在 7.0.0 中被删除,请参阅 documentation。是时候升级到当前版本的 PHP 了。

    【讨论】:

      【解决方案2】:

      我不会使用正则表达式来检查文件的扩展名。 https://www.php.net/manual/en/function.pathinfo.phpin_array 会是更好的方法。

      $path = pathinfo($f);
      if(in_array(strtolower($path['extension']), array('jpg', 'gif', 'png')) {
           $files[] =  $path . $f;
      }
      

      【讨论】:

        猜你喜欢
        • 2017-07-24
        • 1970-01-01
        • 1970-01-01
        • 2014-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-25
        • 2013-02-10
        相关资源
        最近更新 更多