За последние 24 часа нас посетили 19194 программиста и 1646 роботов. Сейчас ищут 998 программистов ...

варианты определения наличия картинки?

Тема в разделе "PHP для новичков", создана пользователем 4kict, 8 июн 2008.

  1. 4kict

    4kict Активный пользователь

    С нами с:
    8 июн 2008
    Сообщения:
    7
    Симпатии:
    0
    Зздравствуйте, как поределить есть/доступна ли картинка по какому-либо извесному адресу (например http://www.example.com/gifs/logo.gif) или ее там нет? Раньше работала getimagesize(), но потом хостер закрыл все удаленные соединения.
    Спасибо!
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    4kict
    Читаете заголовки (header). Если 404, то нет картинки, если image, то есть.
     
  3. 4kict

    4kict Активный пользователь

    С нами с:
    8 июн 2008
    Сообщения:
    7
    Симпатии:
    0
    Спасибо за ответ, а можно поподробнее?
     
  4. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    разве этим не всё сказано?
     
  5. 4kict

    4kict Активный пользователь

    С нами с:
    8 июн 2008
    Сообщения:
    7
    Симпатии:
    0
    при необходимости, я пишу хостеру и он мне открывает удаленные соединения на запрошенные ресурсы, но такой вариант мне не подходит, я не могу каждый раз отправллять запрос хостеру.
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Так как же получить картинку, если все соединения недоступно? Как же на сайте они показываются?
     
  7. 4kict

    4kict Активный пользователь

    С нами с:
    8 июн 2008
    Сообщения:
    7
    Симпатии:
    0
    Я не очень в этом силен, наверно скриптом нельзя, а через обычный хтмл картинка показывается нормально. Просто мне ее перед отображением надо проверить существует ли она вообще.
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Значит можно.
    Установите браузер firefox, и плагин к нему liveHTTPheaders. Посмотрите, что посылает браузер серверу, когда запрашивает картинку.
    Далее через fsockopen пошлите подобные заголовки. Если ответ придет 404/403 - значит картинка недоступна.
     
  9. Anonymous

    Anonymous Guest

    Угу, потому что ее запрашивает не ваш скрипт, а браузер пользователя, который может запрашивать что угодно откуда угодно.
     
  10. 4kict

    4kict Активный пользователь

    С нами с:
    8 июн 2008
    Сообщения:
    7
    Симпатии:
    0
    Значит мне надо сначало установить соединенеи с удаленным сервером через fsockopen, что бы потом послать заголовки? Но я же не могу...
     
  11. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    нельзя вашим скриптам ничего. хостер уже постарался. и правильно сделал!
    если вы захотите любой ценой "обхитрить" своего хостера, то можете передавать уже из броузера статус onload картинок ajax'ом своему скрипту (жесть ваще)....
     
  12. 4kict

    4kict Активный пользователь

    С нами с:
    8 июн 2008
    Сообщения:
    7
    Симпатии:
    0
    у меня каталог ссылок, люди присылают свои ссылки и УРЛы баннеров, я же, прежде чем выкладывать баннер со ссылкой, хочу проверить, существует ли этот баннер. Это нереально с моим хостером?
     
  13. Anonymous

    Anonymous Guest

    именно так
     
  14. 4kict

    4kict Активный пользователь

    С нами с:
    8 июн 2008
    Сообщения:
    7
    Симпатии:
    0
    Млин! А я тут с заголовками сношаюсь уже полдня....
    Всем спасибо!
     
  15. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    4kict, нереальных задач нет - вопрос только в стоимости решения.
     
  16. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    4kict
    Извиняюсь, я с самого начала не прочитал, что ваш хостер закрыл. Я подумал, что сервер с картинками закрыл доступ на запросы с неполными заголовками.