PHP-Поиск файлов без учета регистра
мне нужно проверить папку изображений для добавления некоторых изображений продукта. Мой массив списка продуктов имеет SKUs, такие как a48be25, A48be29, A48BE30
и моя папка изображений имеет такие изображения, как a48BE25_1.jpg, a48bE29_2.JPG, A48BE30_1.jpg
и так далее.
как вы можете видеть, изображения и SKUs смешаны. Мне нужно как-то сопоставить SKUs с именами файлов. Если я использую glob("my/dir/{$SKU}*.jpg")
, он не будет работать в случае чувствительных операционных систем в соответствии с моими знаниями. Есть ли способ заставить glob
выполнить поиск без учета регистра?
изменить: Я не думаю, что этот поток является дубликатом этот. Я говорю это, потому что в моем случае у меня может быть много SKU, которые могут иметь смешанные случаи. В упомянутой теме У OP было только слово CSV
в смешанных случаях, так glob('my/dir/*.[cC][sS][vV]')
может хорошо работать там.
1 ответов
в конечном итоге я получил все изображения из папки и проверил каждый 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
реализованы в будущем.