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

时间:2015-05-18 12:58:01

标签: php glob

我需要检查图像文件夹以添加一些产品图像。我的产品列表数组包含a48be25, A48be29, A48BE30等SKU,我的图像文件夹包含a48BE25_1.jpg, a48bE29_2.JPG, A48BE30_1.jpg等图像。

如您所见,图像和SKU是混合的。我需要以某种方式将SKU与文件名匹配。如果我使用glob("my/dir/{$SKU}*.jpg"),根据我的知识,它将不适用于区分大小写的操作系统。有没有办法迫使glob以不区分大小写的方式进行搜索?

编辑:我认为这个帖子不是this one的副本。我这样说是因为在我的情况下我可以有很多可以混合使用的SKU。在提到的帖子中,OP在混合情况下只有CSV这个词,所以glob('my/dir/*.[cC][sS][vV]')可以在那里很好地工作。

1 个答案:

答案 0 :(得分:3)

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

以下代码解决了我的问题:

$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