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

Gog*_*gol 6 php glob

我需要检查图像文件夹以添加一些产品图像.我的产品列表数组有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]')在那里可以很好地工作.

Gog*_*gol 3

我最终从文件夹中获取所有图像并检查图像名称数组中的每个 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);
}
Run Code Online (Sandbox Code Playgroud)

尽管如此,我希望看到glob将来实现不区分大小写。

  • 没问题。不过我会转达这个消息。我有一个朋友在 PHP.net 认识这个人 ;-) *干杯* (2认同)