За последние 24 часа нас посетили 50872 программиста и 1735 роботов. Сейчас ищут 930 программистов ...

Content-type + img + php. Проблемка..

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

  1. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Кэшируется изображение, но не могу вывести его на страницу.

    1) Создается изображение с наложенным текстом, выводится на странице в формате gif.
    header("Content-type: image/gif");

    2) Заливается копия этой картинки.

    3) Если файл старше чем 30 сек..

    Так вот. Если имеем дело с php кэшированием то можно просто воспользоваться include. В моем случае нужно добавить картинку и вывести с параметром Content-type: image/gif

    Естественно include отпадает, тег <img src> без "контент тип: гиф" тоже не вариант.. Тогда что вариант? :)
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Понял ни фига...
    Что значит ".... путь до самого файла cache/$crc ... "? Что там в этом месте у тебя?
    Картинку можно отдать браузеру из php скрипта сразу, можно сохранить её на сервере и вставлять в странички ссылку на неё...
     
  3. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    там где путь до самого файла, целое изображение. Мне не нужно вставлять ссылку к нему, а нужно оттуда взять содержимое и засунуть на страницу с параметром header("Content-type: image/gif");

    есть варианты..? ну ведь если убрать header("Content-type: image/gif"); когда картинка генерируется там прописью код картинки, разве никак нельзя его сунуть) да простит меня php за словесный понос=)
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
  5. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    file_get_content
    какой к черту include? Это полный говнокод, бэкдор как будто ставите)))
     
  6. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    аха все гениально и просто)) спасибо)))
    про инклуд вообще к примеру сказал естественно говнокод если его не программер пишет )
     
  7. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Вообще думаю ужасно это:

    Подсчитал была нагрузка в 0.002 теперь в 0.001 примерно в 2 раза упала.. Пытаюсь добиться производительности хорошей от куска кода, правда знаний мало)
     
  8. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    какая это вообще картинка, зачем через определенные интервалы ее заново генерировать? МБ пересмотреть задачу?
     
  9. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Invision
    Если правильно понял задачу, то при заливании новой картинки, вам нужно удалять из кеша старую, а не проверять через определенные интервалы
     
  10. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    ну ведь суть сгенерировать изображение засунуть в папку cache и в течение скажем 300 секунд удерживать там. Ну он проверяет дату создания изображения и не прошло ли 300 сек. (в коде выше 4 сек).

    Можно пересмотреть проще и сделать обнову для всех изображений в 1 время без чтения и проверки файла каждого.. Но тут я не знаю как с if`ом работать в данном случае)
     
  11. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Invision
    Ну, а по прошествии скажем этих 300 секунд, если не ЗАГРУЗИЛИ НОВОЕ ИЗОБРАЖЕНИЕ, ИЛИ НЕ УДАЛИЛИ СТАРОЕ - ничего не изменится же, разве не так?
     
  12. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    оно просто болтается на сервере..

    p.s выше пост поправил про массовое обновление) вообще тут речь о счетчиках под сайты идет :)
     
  13. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Тогда возможно логичнее поставить обработку кеша не на запрос к картинке, а на событие загрузки картинки и удаления?
     
  14. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    без кэша php она генерируется только 1 раз на сервере не держится.
     
  15. Invision

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

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    просто скрипт над которым бьюсь будет много считать и много добавлять) в среднем сейчас один запрос составляет 0.0014.. мс. Я и думаю большое кол-во данных насколько его напрягут...