![]() |
![]() |
| http://kurepin.ru/php/golos2/ |
|
Ну вот. Очередная суббота, очередной выпуск, очередная задача. Надо сказать, что задачу из прошлого выпуска (про построение древа) блестяще решил Nick. Оба метода решения данной задачи можете найти на forum-е. А я обязательно включу одно из решений в наш проект, тем более, то оба они почти на 100% совпали с моими вариантами решений. Простое совпадение ли это? Одно из двух: или совпадение, или мы пришли к оптимальному решению задачи. С удовольствием увидел бы другие варианты! Прежде чем сформулировать очередную задачу, хочу сказать пару слов о доступных методах общения со мной. Дел в том, что есть две группы людей, которых мне надо предостеречь и направить в нужном направлении: Первые — те, кто пишут мне электронные письма с просьбой помочь разобраться с каким-нибудь кодом, придумать для них какое-то решение задачи и так далее. Друзья мои, говорю еще раз, — на все вопросы, связанные с компьютером и программированием я отвечаю ТОЛЬКО в форуме. Так что, задавайте ваши вопросы в форуме (), если желаете получить на них ответ. Вторая группа — люди, задающие вопросы, не до конца данный курс обучения, или вообще его не читая. В результате — они задают вопросы, ответы на которые в явном виде содержаться в выпусках "Пишем на PHP". Вот что с этими людьми делать — я уже не знаю. Я просто начинаю игнорировать подобные вопросы, так как другого выхода не нахожу. Теперь перейдем к очередной задаче, а уж после — к продолжению создания голосования. Учите, я стараюсь задавать задачи практические, и удачные решения обязательно войдут в этот курс и наш строящийся сайт. Сегодня я хочу затронуть не очень сложную тему для задачи, но безусловно полезную. Скажите, вам удобно читать большой текст, когда он загружается целиком на одну страницу? А если вам надо прерваться и продолжить чтение в другой раз? В общем, задача состоит в том, что тексты надо делить на куски. Причем, делить надо автоматически, а не вручную, во время выкладывания на сайт. Почему? А потому, что никогда не известно, в каком виде и где этот текст может понадобиться. Поэтому, он должен лежать в оригинальном виде, а отдавать его пользователю посредством http, e-mail, ftp или еще как-то — это уже наша задача, которую мы сейчас и сформулируем. Итак. Необходимо написать код, занимающийся разбиением выводимого текста на страницы по сколько-то килобайт в каждой. Количество килобайт — величина переменная, содержащаяся в переменной $PAGE_TEXT_SIZE. Дополнительное условие — текст не должен разрываться посреди слова или предложения, если это не авторский перевод строки (стихи, или что-то подобное). Ну и вывод списка всех страниц, конечно. Чтобы на каждой странице было видно — сколько прочли, текущий номер и сколько еще осталось. Осилим? И я, как это уже стало традицией, жду два варианта решения этой задачи: 1. Выделение из текста текущей страницы в оперативной памяти (более простой вариант, на мой взгляд) 2. Вариант, когда в оперативную память текст загружается кусками, не превышающими определенный размер. Например, не более $PAGE_TEXT_SIZE * 2. Лучшая из реализаций данной задачи займет свое достойное место в первом же очередном выпуске "Пишем на PHP", как только будет создана. Ну вот. Ответы, как всегда, принимаю только в форуме, жду повышенной активности. А теперь, к долгожданному голосованию. Что там я писал в прошлый раз? А, надо нарисовать форму для голосования. Что ж... рисуем... в файл /inc/voting_form.inc мы ее рисуем, да? За основу я возьму форму из добавления текста. Чем-то они похожи. И вот, значит, какая у меня получилась форма: |