Альтернативы PHP getimagesize() без JavaScript?
Вопрос
Скажем, у меня есть URL-адрес изображения, а доступ к файлу по URL-адресу отключен в конфигурации сервера, и я не могу (или не хочу) это изменить. Есть ли простой способ получить его высоту/ширину с помощью PHP?Я бы предпочел не использовать JavaScript, если это возможно.
Нет правильного решения
Другие советы
хм, значит, вы собираетесь перетащить изображение по сети в свое PHP-приложение, «найти» размер, а затем, предположительно, выдать HTML-изображение с размером?мне кажется каким-то прикольным.
На самом деле это не имеет особого смысла, поскольку, если вы можете просмотреть изображение на веб-странице, оно должно быть доступно напрямую через URL-адрес.Другими словами, зачем вам URL-адрес изображения, к которому нельзя получить доступ через URL-адрес?
В любом случае вы можете использовать любое количество библиотек http/url для установки пользовательского агента в заголовке запроса.По сути, вы обманываете сервер, заставляя его поверить, что к файлу обращается браузер, а не анонимная служба.
Вот список Пользовательские агенты браузера вы можете использовать для этой цели.
Чтобы изучить удаленное изображение, вам придется каким-то образом его запросить.Вы не можете определить свойства того, чего не видите.Если удаленный доступ к файлам отключен для вашей установки PHP, вам, возможно, придется передать это процессу системного уровня, например wget, cURL или ftp.
Скорее всего, если ваш хост отключил удаленный доступ к файлам, он, вероятно, также отключил доступ к оболочке, но в качестве примера вы можете сделать что-то вроде:
exec("wget ".$url);
Другим вариантом может быть использование встроенный пакет cURL, если по какой-то странной конфигурации он установлен и активен, несмотря на отсутствие удаленного доступа к файлам.
Если вы можете найти способ загрузить изображение с удаленного сервера, вы можете использовать getimagesize() в теме.