определить расширение файла сохраненного изображения (или любого файла)

Как наиболее эффективно определить расширение сохраненного файла, учитывая, что я знаю только имя, а не расширение?

Допустимые типы / расширения: .jpg, .png и .gif

Например, каждый элемент имеет изображение, поэтому имя изображения будет

item1.jpg or item1.png or item1.gif
item2.jpg or item2.png or item2.gif
etc.

Пока я могу думать только о том, как пройтись по трем

if(file_exists('item1.jpg')) {...
} elseif(file_exists('item1.png')) {...
} elseif(file_exists('item1.gif')) {...
}

Есть ли более эффективный способ?

0

Решение

Для эффективного с точки зрения меньшего количества кода, вы могли бы сделать

$name = 'item23';
$images = glob("images/$name.???");
$image = $images ? $images[0] : '';

который должен вернуть первый файл, соответствующий вашему имени файла, независимо от того, какое расширение он имеет, или '' если соответствующий файл не найден. я считать это также должно быть более эффективным с точки зрения времени выполнения, чем проверка file_exists три раза.


По моему незапрошенному мнению, сохранение полных путей к изображениям, связанным с вашими статьями, не является плохой идеей.

0

Другие решения

Пытаться mime_content_type

Это должно проверить MIME файла и дать вам тип

1

По вопросам рекламы [email protected]