PHP getimagesize () альтернативы без JavaScript? - PullRequest
0 голосов
/ 27 января 2010

Скажем, у меня есть URL-адрес изображения, и доступ к файлам URL-адресов отключен в конфигурации сервера, и это не то, что я могу (или хочу) изменить, есть ли простой способ получить его высоту / ширину с помощью PHP ? Я бы предпочел не использовать JavaScript, если это возможно.

Ответы [ 3 ]

0 голосов
/ 27 января 2010

Чтобы изучить удаленное изображение, вам нужно как-то запросить его. Вы не можете определить свойства чего-то, что не видите. Если удаленный доступ к файлам отключен для вашей установки PHP, вам, возможно, придется перенести это на процесс системного уровня, такой как wget, cURL или ftp.

Скорее всего, если ваш хост отключил удаленный доступ к файлам, возможно, он также отключил доступ к оболочке, но, например, вы можете сделать что-то вроде:

exec("wget ".$url);

Другим вариантом может быть использование встроенного пакета cURL , если по какой-то странной конфигурации он установлен и активен, несмотря на отсутствие удаленного доступа к файлу.

Если вы можете найти способ загрузить изображение с удаленного сервера, вы можете использовать getimagesize () на нем.

0 голосов
/ 27 января 2010

Это на самом деле не имеет особого смысла, поскольку, если вы можете просматривать изображение на веб-странице, изображение должно быть напрямую доступно через URL. Почему, другими словами, у вас был бы URL для изображения, к которому нельзя получить доступ через URL?

В любом случае, вы можете использовать любое количество библиотек http / url для установки пользовательского агента в заголовке запроса. По сути, вы обманываете сервер, полагая, что к файлу обращается браузер, а не анонимный сервис.

Вот список пользовательских браузерных агентов , которые вы можете использовать для этой цели.

0 голосов
/ 27 января 2010

ммм, так что вы собираетесь вытянуть изображение по сети в ваше PHP-приложение, «найти» размер, а затем предположительно выдать HTML-изображение с размером? Мне кажется, это немного странно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...