| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Как сделать свой информер |
| Автор: rew 12.2.2012, 12:47 |
| Доброго дня всем!!! У меня такой вопрос как сделать свой собственный информер? То есть пользователь заходить на мой сайт копирует кусок кода, затем вставляет себе на сайт и у него отображается информация с моего сайта. Мне нужен информер на подобия курс валют или погоды. PS: Модераторы Прошу прошения если не туда пишу |
| Автор: $дмитрий 12.2.2012, 15:01 |
| 1. Запрашиваешь информацию с сайта(если погода гисметиа.ру, валюта цбр) 2. С помощью GD/IM создаешь изображение и сохраняешь в файле 3. При запросе отдаешь сохраненную картинку Технически тут самый интересный 3 шаг, но его будет смысл обсуждать когда выполнишь первые 2 |
| Автор: rew 12.2.2012, 17:18 |
| Спасибо Дмитрий за ответ, я тоже склонялся к такому решению. Это решение мне напоминает создание captcha. |
| Автор: krundetz 13.2.2012, 09:36 | ||
Тем самым увеличим нагрузку почти экспоненциально росту числа размещенных информеров и количеству их загрузок. Твой вариант будет рационален только в случае постоянного изменения данных на картинке, для прогноза погоды и курса валют он излишен. |
| Автор: $дмитрий 13.2.2012, 10:11 | ||||
krundetz правильно пишет, немного дополню
Вообще-то различные варианты отображения информера привязывают к путям, а не к пользователям. Причина таже - кэш. Кроме этого важно правильно настроить сам сервер на выдачу правильных хедеров. А ты говоришь ничего интересного
Операция с картинками требует немало ресурсов, при большОй посещаемости и частой обновлении информации стоит подумать нат тем, чтобы переложить часть вычислений на клиента, либо искать альтернативную поточную технологию |
| Автор: MoLeX 13.2.2012, 10:27 |
| и я бы не советовал использовать GD |
| Автор: gta4kv 13.2.2012, 10:29 | ||
м? |
| Автор: MoLeX 13.2.2012, 11:35 |
| http://www.php.net/manual/ru/book.image.php http://www.php.net/manual/ru/book.imagick.php есть что сравнить) а если изображения генерятся на лету, то лучше использовать стороннее решение, незачем такое на РНР вешать |
| Автор: krundetz 13.2.2012, 11:43 | ||||
это самое интересное почему?
Зависит ещё от сложности картинки. Можно сделать пере сбор картинки не по каждому запросу, а только по интервальному, как например на LiveInternet сделан счетчик посетителей. На нем картинка выдается предыдущая. Картинка же с новой информацией будет отдана позже. То есть картинка пере генерируется с интервалом, за это время информация для нее может быть обновлена несколько раз. Как ты предлагаешь переложить вычисления на сторону клиента?
аргументы если можно. пока я их не увидел. |
| Автор: $дмитрий 13.2.2012, 20:25 |
| IM безусловный лидер, причины: - СКОРОСТЬ ОБРАБОТКИ Тестировал, в свое время, ресайз 1МБ картинки. Результаты 1/20. Причем с увеличением размера файла соотношение только растет. Почему GD тормоз? Как рассказывал один знакомый(который непосредственно учавствовал в разработки GD) причины кроются в кривых алгоритмах обработки. Короче не математики ЭТО писали. Результаты подтверждают эти слова - ФУНКЦИОНАЛЬНОСТЬ Тут и комментировать особо нечего, лучше http://www.imagemagick.org/image/examples.jpg. GD не обладает таким широким функционалом - МЕНЬШЕ ПИСАНИНЫ Совсем недавно писал модуль ресайза. Если у пользователя есть поддержка IM подрубается он, иначе GD. Функциональность и того и другого идентичная. В итоге IM - 30 строк, GD - 129 Так что ребята у кого есть возможность пользуйтесь IM |
| Автор: krundetz 14.2.2012, 00:19 |
Это само собой, просто хотелось развернутый ответ услышать. Спасибо за него. Хотя мне больше от тебя хотелось услышать как переложить вычисления по обработке изображений на пользователя? |
| Автор: $дмитрий 14.2.2012, 00:46 | ||
Таааак с первым вопросом разобрались идем дальше
От сервера получаешь текстовые данные, формируешь изображение с помощью JS/Canvas/Flash. Обычно такое встречается в графиках реального времени. Или на примере этого форума, подсветкой синтаксиса тоже занимается клиент, а не сервер Не стоит забывать что клиент это тоже РЕСУРС, хоть и не надежный |
| Автор: Gold Dragon 14.2.2012, 07:27 |
| Canvas? А не получится что код будет больше размером чем картинка? и про Осла можно забыть |
| Автор: rew 14.2.2012, 07:30 |
| народ, а если сделать так. когда в первый раз идет запрос к моему сайту я созданю картинку и сохраняю у себя на сервере, а при последующих обращениях я просто буду ее возвращать. информация на информере не меняется в течении всего дня. |
| Автор: Gold Dragon 14.2.2012, 07:33 |
| ну это само собой.. сделать простенькое кеширование |
| Автор: $дмитрий 14.2.2012, 08:02 | ||||||
Да
Это смотря какая задача/условия, где-то лучше сразу отдавать картинку, где-то распределять вычисления. В данном случаи конечно картинкой и не парится
Для 7/8 вроде есть хак |
| Автор: krundetz 14.2.2012, 09:59 | ||||||
Я тебя понял. Хотя думал немного о другом, а именно частичной обработке растрового графического файла на клиенте. Примерно так: 1. Клиент запрашивает графический файл. 2. Если файл в актуальном виде есть на сервере, сервер отдает его. 3. Если файл на сервере имеет неактуальное состояние, сервер отдает заготовку на него и говорит как ее необходимо обработать. 4. Клиент производит необходимую обработку и актуализирует файл на сервере. И сразу возникает вопрос как проверить правильность обработки?
об этом я помню, поэтому и интересовался.
вариант неплох если данные меняются 1 раз в сутки. |
| Автор: $дмитрий 14.2.2012, 10:30 | ||
Задача конечно абстрактная, но сам вопрос интересен С одним клиентам никак, а вот если их несколько можно проверять процент совпадений. Насколько я понял, примерно так работает рекаптча |
| Автор: krundetz 14.2.2012, 12:01 | ||
при условии обновления данных во временном интервале, безусловно это выход, а если же данные для разных клиентов обрабатываются по разному то нет ((( |
| Автор: solenko 14.2.2012, 19:56 | ||||
В рекапче не зря два слова. Одно она знает, а второе вы распознаете за нее. Добавлено через 1 минуту и 41 секунду
мне вот интересно, алгоритм сравнения и _выбора_ верного будет более ресурсоемок, чем сама обработка? ) |
| Автор: krundetz 14.2.2012, 22:20 | ||
склоняюсь к тому что да, либо равнозначен ему, иначе вопрос не озвучил как пример возьмем растровое изображение, на котором клиент должен дорисовать что то, например квадрат по определенным координатам. чтобы узнать нарисован ли этот квадрат нам нужно узнать отличается ли цвет пикселей в области квадрата от первоночального. чтобы оторваться от абстракции, возьмем в пример сайт генератор бэкгроундов. Предположим что на сайте пользователь может нарисовать свой бэкграунд, скомпоновав имеющиеся заготовки, а потом его опубликовать. Допустим мы нашли вариант при котором клиент может сгенерировать растровую картинку. После того как картинка создана, пользователь хочет ей похвастаться, для этого ее можно опубликовать, на том же ресурсе. Вот здесь икроется подвох, надо быть уверенным что: 1. картинка сгенерированна правильно, то есть другой пользователь сможет спокойно сделать подобную картинку, изменив только основные цвета. Будет очень непросто, когда, другие пользователи, погребут владельца сайта, в ворохе жалоб на его работоспособность, из-за неккоректности опубликованной картинки. 2. картинка не является целенаправленой вредительской акцией. Репутация сайта будет подмочена, если все примеры пользовательских бэкграундов будут содержать матерные слова и т.д. и т.п. 3. просто не забываем про принцип, что все данные пришедшие от пользователя должны проверяться. |
| Автор: $дмитрий 15.2.2012, 06:14 | ||
Нет, если сравнивать хеши в разумном количестве |
| Автор: $дмитрий 15.2.2012, 06:31 | ||
В каптче нас интересует только это: "Неизвестное системе слово, введённое пользователем, сохраняется и используется в качестве возможного варианта распознания. Конечное распознание слова определяется путём вычисления наиболее часто используемого слова для ввода." |
| Автор: Aleks1 30.10.2012, 06:01 | ||
интересует вопрос: есть ли в GD реализация эффекта "plasma"? можно ли его реализовать комбинацией GD-фильтров? |
| Автор: baldina 30.10.2012, 09:38 |
от данных зависит. для валюты или погоды данные невелики - строчка до 50 символов Добавлено через 1 минуту и 22 секунды кажется, уже сказали... |