Как наиболее эффективно определить расширение сохраненного файла, учитывая, что я знаю только имя, а не расширение?
Допустимые типы / расширения: .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')) {...
}
Есть ли более эффективный способ?
Для эффективного с точки зрения меньшего количества кода, вы могли бы сделать
$name = 'item23';
$images = glob("images/$name.???");
$image = $images ? $images[0] : '';
который должен вернуть первый файл, соответствующий вашему имени файла, независимо от того, какое расширение он имеет, или ''
если соответствующий файл не найден. я считать это также должно быть более эффективным с точки зрения времени выполнения, чем проверка file_exists
три раза.
По моему незапрошенному мнению, сохранение полных путей к изображениям, связанным с вашими статьями, не является плохой идеей.
Пытаться mime_content_type
Это должно проверить MIME файла и дать вам тип