PHP - 不区分大小写的文件搜索
PHP - Case insensitive File Search
我需要检查图像文件夹以添加一些产品图像。我的产品列表数组有 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]')
在那里可以很好地工作。
我最终从文件夹中获取所有图像并检查图像名称数组中的每个 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
。
我需要检查图像文件夹以添加一些产品图像。我的产品列表数组有 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]')
在那里可以很好地工作。
我最终从文件夹中获取所有图像并检查图像名称数组中的每个 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
。