我有一些多年前使用 eregi 为我完成的编码。我知道我需要将其更改为 preg_match 但不知道如何执行此操作。
代码是:
if (eregi("\.jpg|\.gif|\.png", $f))
array_push($files, $path.$f);
任何帮助将不胜感激
谢谢
我有一些多年前使用 eregi 为我完成的编码。我知道我需要将其更改为 preg_match 但不知道如何执行此操作。
代码是:
if (eregi("\.jpg|\.gif|\.png", $f))
array_push($files, $path.$f);
任何帮助将不胜感激
谢谢
您应该可以在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 了。
我不会使用正则表达式来检查文件的扩展名。https://www.php.net/manual/en/function.pathinfo.php会in_array
是更好的方法。
$path = pathinfo($f);
if(in_array(strtolower($path['extension']), array('jpg', 'gif', 'png')) {
$files[] = $path . $f;
}