| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Вставка в HTML результата PHP с изображением |
| Автор: miraz 26.5.2008, 17:22 |
| Может кто сталкивался с этим. Суть такова: HTML страница в которую с помощью include вставляются PHP файлы. Уже добавлено простенькое голосование, тоже includ - все встало и работает, но теперь надо добавить php файл с простым котодом, который, в зависимости от текущего времени выдает определенный рисунок. Отдельно все работает, правда время еще не подключено, но картинки выдает правильно, а вот, когда все это вставлено в шаблон, то картинка показывается в виде абракадабры какой-то, я плохо в этом разбираюсь, но судя по всему, она выдается как текст :(. Что делать? Где здесь собака порылась в HTML или в РНР? Все файлы с расширениями php. |
| Автор: miraz 26.5.2008, 18:08 |
| |
| Автор: Feldmarschall 26.5.2008, 18:25 |
| Девушка. Настоятельно рекомендую прочесть вот это: http://phpfaq.ru/na_tanke, чтобы не путаться, где у вас рнр, где хтмл, а где яваскрипт. функция, которая работает в РНР c временем, называется http://php.net/date |
| Автор: miraz 26.5.2008, 18:37 | ||
Обязательно прочту
|
| Автор: skyboy 26.5.2008, 19:34 |
ещё бы. ошибка. нет формата записи такого. это и не число, и не строка... это раз. не отдает заголовки, специфические для графических форматов. может быть больно, обидно и не отображаться. чтоб отдавать медиа-контент есть вполне отдельные функции(http://php.net/imagejpeg, например). это два. у тебя с точностью до часа определяется, значит выбирать минуты и секунды тебе необязательно. достаточно определить час и сравнивать почасово. это три. ты все-так почитай то, ссылку на что дал тебе Feldmarschall. Очень познавательно и дает массу информации. это четыре |
| Автор: Feldmarschall 26.5.2008, 19:34 |
| надо сначала отлаживать свои конструкции. а потом уже в файл вставлять. |
| Автор: miraz 26.5.2008, 19:45 |
| Ребят, у меня уровень, ниже плинтуса, с сожалению, и почти ничего из написаного я не поняла. А на сате этом я уже прописалась, как и везде, там примеры - просто никакие, а чуть сложней- и полная задница. О времени, секунды, конечно, нафиг не нужны, но минуты нужны. Ладно, пойду искать. Спасибо! |
| Автор: bobik02 26.5.2008, 19:52 | ||
Ниже плинтуса не упадете! И что мешать поднять свой уровень выше крыши ? |
| Автор: miraz 26.5.2008, 20:22 |
| Автор: skyboy 26.5.2008, 20:44 |
| fopen + fpassthru заменяешь на http://php.net/imagecreatefromjpeg+ http://php.net/imagejpeg. сравниваешь date("H") и целые значения часов, date("i") и значение минут. в своих if'ах только выбираешь имя файла, а вывод выносишь за эти всякие if'ы. так у тебя код сокращается до 14 строк. |
| Автор: Feldmarschall 26.5.2008, 20:46 |
| skyboy, а это ещё зачем - imagecreatefromjpeg + imagejpeg.??? |
| Автор: skyboy 26.5.2008, 20:48 |
надеюсь, ты этой фразой не рассчитываешь вызвать сочувствие? разве тебя заставляли браться за эту работу? Добавлено через 4 минуты и 33 секунды Feldmarschall, чтоб не объяснять, какие заголовки надо отправлять и почему. впрочем, может я ошибаюсь, и fpassthru волшнебным образом определит mime-type и отправит content-type: image/jpeg? |
| Автор: miraz 26.5.2008, 20:59 |
| Жизнь заставила, после смерти мужа осталось куча программ написанных на РНР, они мне нужны, но там иногда надо производить изменения, а я нифига не понимаю, вот и ввязалась в это дело. Хотя могла всё бросить, конечно. А сейчас, просто надо закончить курсы, доделать хоть как-то этот несчастный сайт, так что, об оптимизации кода пока речи не идет |
| Автор: skyboy 26.5.2008, 21:02 |
Добавлено через 7 минут и 9 секунд довольно изобретательное оправдание лени |
| Автор: miraz 26.5.2008, 21:15 |
| Думаешь это шутка? У меня начали дохнуть интернет-магазины, один за другим, и ничего сделать не могла. Занимаюсь я всем этим, всего месяц, и то не постоянно. Как ты думаешь, много можно узнать за такое время? |
| Автор: Feldmarschall 26.5.2008, 22:25 |
| skyboy, а imagecreatefromjpeg + imagejpeg - отправит? а если б даже отправляло - это не слишком ли - создавать объект гд, вместо того, чтобы просто прочитать файл? |
| Автор: skyboy 26.5.2008, 22:57 | ||
нет, не отправляет. прошу прощения за попытку ввода в заблуждение. fopen + fpassthru в таком случае лучше дополнить заголовками, как показано в примере по использованию http://php.net/fpassthru(Content-Type и Content-Length)
если бы отправляло, как я считал, я бы не стал придираться к нагрузке. да, бессмысленная работа выполняется. да, потенциально нагружает сервер. да, есть более адекватные решения. но если дело только в нагрузке и при этом избегается лекция на тему "что такое заголовки и с чем их есть" - лучше бы порекомендовал imagejpeg. все равно, рано или поздно поднялся бы вопрос о кешировании и Last-Modified, так что с заголовками разобрались бы. просто позже. |
| Автор: Fortop 27.5.2008, 00:34 |
Нанимай специалиста. Либо занимайся постоянно. |
| Автор: MoLeX 27.5.2008, 07:23 |
| Автор: miraz 27.5.2008, 07:33 |
| Спасибо! Это самый дельный совет, который я здесь получила |
| Автор: MoLeX 27.5.2008, 07:36 |
| miraz, а можно еще раз вопрос. просто мельком пролестав топик увидел что главный решился (поравь если ошибся) а побочные нет, но из-за большого количества флейма и советов лень выискивать главное |
| Автор: miraz 27.5.2008, 07:40 | ||||
это совсем не поняла :(
что ты имеешь в виду под "фреймом"? |
| Автор: MoLeX 27.5.2008, 07:45 |
| ну вот опять флейм (это такое необузданное место, лучше туда не ходить, а то снег попадет в голову или еще что похуже случится). ну как понял у тебя не получалось вставить картинку сгенерированную с помощью РНР в хтмл код, тебе skyboy (если не ошибаюсь) объяснил как это сделать. какие еще вопросы возникли дальше? |
| Автор: Feldmarschall 27.5.2008, 07:49 |
| skyboy, зря упорствуешь. GD - одна из вещей, которые действительно создают нагрузку на сервер. И кэширование здесь не при чем. Девочке, между прочим, даже fpassthru не нужно. Ей нужен динамически меняющийся тег img то есть, вставка кода с date в основной скрипт |
| Автор: MoLeX 27.5.2008, 07:53 | ||
что то типо такого
|
| Автор: Feldmarschall 27.5.2008, 08:00 |
| о господи <img src="<?=$time?>.jpg" |
| Автор: miraz 27.5.2008, 08:00 |
| Картинка встала, благодаря skyboy |
| Автор: Feldmarschall 27.5.2008, 08:06 |
| miraz, для этого надо писать код, который не картинки выдает, а слово - обед, ужин, утро. и не вставлять этот код в рабочий сайт, а писать в отдельном файлике. и только после того, как он перестанет тебе писать ошибки синтаксиса, а начнет выдавать, что нужно - только после этого его начинать использовать. А у тебя сейчас - как в том анекдоте: "Я печатаю со скоростью 2000 знаков в минуту. Но такая фигня получается..." толку-то с того, что ты написала такой большой и красивый код? Если в нем даже один элемент - сравнение даты не работает? код надо писать постепенно. напиши echo 18:00; и посмотри, что оно тебе выведет. Совсем не то, что ожидалось, правда? Ну так зачем городить сразу большой код, если в самом начале у него уже ошибка? |
| Автор: MoLeX 27.5.2008, 08:08 | ||
| а, вот какая задача. а нельзя было хотя бы так сделать?
|
| Автор: miraz 27.5.2008, 08:36 | ||
Feldmarschall изначально что-то похожее и было (кроме времени)
и код этот, который должен в картинки подставлять, в отдельном файле, даже в другом каталоге, а в форму передается уже результат. Я конечно, неумная, но не до такой степени, чтоб и форму и код в одном файле писать, тогда там сам черт ногу сломит :(. Когда все это было в том виде как выше написано- все работало, какую цифру поставишь, соответсвенно ту картинку и выдавал, а вот, когда дошло до выдачи по времени- началось. Согласна, следовало бы начать с этого самого времени, но решила посмотреть будет ли это хоть как-то работать, работать то оно работает, только теперь это к времени надо привязать. Говоришь, это называется сравнение даты? MoLeX- что-то не фурычет. Что должно стоять перед ифом кроме начального тега, естественно? |
| Автор: MoLeX 27.5.2008, 09:05 |
| miraz, да я там малость напортачил. код сразу написал и опичатку допустил. щас работает, тебе только по принципу необходимо сделать когда выводить тот или иной рисунок |
| Автор: miraz 27.5.2008, 09:41 |
| Ура! Работает! |