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