Сохраняет ли getimagesize() изображение на сервер?
Здравствуйте.
У меня произошел когнитивный диссонанс :)
Если в функцию getimagesize() передаем передаем url картинки: www.example.com/img.jpg, после получения массива с данными (ширина, высота, урл и т.д), физически картинка остается на сервере?
Или фактически этой функцией мы делаем запрос->получаем ответ и на этом все? Сорян, может вопрос странный :) но стало интересно, в документации не нашел вопроса на этот вопрос.
Я склоняюсь к варианту, который высказал ранее, но решил все же уточнить.
Aleksandr Yurchenko, я когда-то задавался подобным вопросом и ради этого заглянул в исходники.
кстати, если вам нужны только размеры, и файлы могут быть большими, лучше пользовать не getimagesize(), а что–то вроде https://github.com/tommoor/fastimage
я когда-то задавался подобным вопросом и ради этого заглянул в исходники
Я ещё в начале тернистого пути :) подобные попытки уже предпринимаю, но пока с переменным успехом. А тут на ровном месте, так "зарылся" что подумал: "лучше спросить, чем ковырять исходники"
кстати, если вам нужны только размеры, и файлы могут быть большими, лучше пользовать не getimagesize(), а что–то вроде https://github.com/tommoor/fastimage
Кстати, сегодня при поисках инфы по getimagesize натыкался на эту репу.
Aleksandr Yurchenko, для маленьких картинок такой подход не имеет смысла. но на больших картинках у меня давало выигрышь до 2 раз по времени и снижение нагрузки на сеть.
Так, мое предположение разнесено в пух и прах :) Эт хорошо, спасибо!
Я не просто так, на ночь глядя: "дай думаю задам странный вопрос".
Дело в том, что прилетела задача с которой ранее не сталкивался. И как я у уже понял getimagesize() для неё не подойдет.
Суть в том, что на сервер приходит запрос, в запросе среди прочего есть url картинки. От этого url мне нужно получить 3 вещи:
1. Размеры (длина, ширина)
2. Тип изображения
3. Хэш-сумму файла
1. - 2. нужны для проверки корректности передаваемых данных. Так как запросы достаточно однотипны и сам url будет меняться крайне-крайне редко, нужно взять hash файла, сохранить в файл (пока задумка реализовать через tmpfile()) и при повторном запросе сравнивать суммы и если они совпадают отдавать 304, что бы не загружать сервер.
Сам файл хранить на сервере нет никакого смысла, не подскажете альтернативу getimagesize(), откуда можно выдернуть эти данные?
Nujabes37, вот и мне сегодня таракан в голову залез, уже несколько раз перечитывал офф.доки и на русском и на анг (хз. думал может перевели криво :)). Нигде не сказано, что файл сохраняется или что файл не сохраняется.
С другой стороны, если mime файла можно (предположительно получить по первым трем символам (забыл как "по умному называется")), то вот как получить размеры изображения без его скачивания локально...
Вот сижу и "меня терзают смутные сомнения" :)
p.s. наверное "пока не попробуешь не узнаешь". Завтра попробую через него (так как по мне это самый очевидные и оптимальный вариант). А дальше виднее будет.
Aleksandr Yurchenko, а чё бы в вопросе сразу все эти уточнения не написать было? :) А то получается что у вас любой файл после получения о нем информации удаляется с сервера.
Aleksandr Yurchenko, Вы понимаете разницу между "любой файл" и "временный файл"? Временный файл удалиться вне зависимости от того, будете ли вы применять к нему getimagesize() или нет.