-1

我有一些多年前使用 eregi 为我完成的编码。我知道我需要将其更改为 preg_match 但不知道如何执行此操作。

代码是:

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

任何帮助将不胜感激

谢谢

4

2 回答 2

2

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

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

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

于 2020-01-30T01:20:35.500 回答
0

我不会使用正则表达式来检查文件的扩展名。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;
}
于 2020-01-30T02:23:57.410 回答