如何在PHP中使用scandir仅获取图像?

有没有办法在使用时仅获取带有扩展名,等的图像jpegpnggif

$dir    = '/tmp';
$files1 = scandir($dir);

答案 1

您可以使用 glob

$images = glob('/tmp/*.{jpeg,gif,png}', GLOB_BRACE);

如果您需要不区分大小写,则可以将 a 与 a 结合使用,或者将结果传递给 to,并使用筛选任何不需要的扩展的回调。是使用 ,还是获取扩展名取决于您。DirectoryIteratorRegexIteratorscandirarray_mapstrposfnmatchpathinfo


答案 2

实际问题是使用scandir,答案最终以glob结尾。两者之间存在巨大差异,其中斑点相当重。可以使用以下代码对 scandir 进行相同的过滤:

$images = preg_grep('~\.(jpeg|jpg|png)$~', scandir($dir_f));

我希望这能帮助某人。


推荐