Альтернативы PHP getimagesize() без javascript?

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


person aslum    schedule 27.01.2010    source источник
comment
Есть ли у файловой системы доступ к изображениям?   -  person adamJLev    schedule 27.01.2010


Ответы (3)


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

person mlathe    schedule 27.01.2010
comment
да. В основном идея заключается в создании аватаров. Я полагаю, что я мог бы просто позволить людям вручную вводить размер, а затем изменять его соответствующим образом, или надеяться, что люди будут выбирать только аватары, которые находятся в пределах размера, который я хочу сохранить ... но я бы предпочел иметь возможность изменять размер изображения должны быть (скажем, 50x50), в то же время позволяя людям выбирать неквадратные изображения (поэтому, возможно, должно быть 40x50) - person aslum; 27.01.2010
comment
Рассматривали ли вы просто использование службы Gravatar? (www.gravatar.com) Переполнение стека использует его. вместо того, чтобы преодолевать все трудности при построении системы самостоятельно. Дополнительным преимуществом является то, что пользователи, у которых уже есть граватары, будут отображаться автоматически. У тех, у кого нет, могут быть автоматически сгенерированные идентификаторы (шаблоны). - person Soviut; 27.01.2010
comment
en.gravatar.com/site/implement/php и просто для потомков, вот как просто реализовать граватары в PHP. - person Soviut; 27.01.2010

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

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

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

person Soviut    schedule 27.01.2010

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

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

exec("wget ".$url);

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

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

person zombat    schedule 27.01.2010