PHP -不区分大小写的文件搜索


PHP - Case insensitive File Search

我需要检查image文件夹是否添加了一些产品图片。我的产品列表数组有sku,如a48be25, A48be29, A48BE30,我的图像文件夹有图像,如a48BE25_1.jpg, a48bE29_2.JPG, A48BE30_1.jpg,等等。

可以看到,图像和sku是混合的。我需要把sku和文件名匹配起来。如果我使用glob("my/dir/{$SKU}*.jpg"),据我所知,它将无法在大小写敏感的操作系统中工作。是否有一种方法可以强制glob以不区分大小写的方式进行搜索?

编辑:我不认为这个帖子是这个帖子的副本。我这么说是因为在我的情况下,我可以有很多sku,它们可以有混合的情况。在上述线程中,OP在混合情况下只有CSV这个词,所以glob('my/dir/*.[cC][sS][vV]')在那里可以很好地工作。

我最终从文件夹中取出所有图像,并检查图像名称数组中的每个sku。

下面的代码解决了我的问题:
$path = $image_path ."/*.{jpg,png,gif}";
$all_images = glob($path, GLOB_BRACE);
$icount = count($all_images);
for($i = 0; $i < $icount; $i++)
{
    $all_images[$i] = str_replace($image_path.'/', '', $all_images[$i]);
}
foreach($products as $product){
    $matches  = preg_grep ('/^'.$product['sku'].'('w+)/i', $all_images);
}

尽管如此,我还是希望将来能够实现不区分大小写的glob