Разбиение текста на страницы - PHP

Евгений21 год в сервисе
Данные заказчика будут вам доступны после подачи заявки
29.06.2008

Есть текстовые файлы размеров по 100-500кб.

Нужно разместить их на сайте в виде статей.

Хранится тексты в mysql, 1 файл – одна статья.

Но выводить нужно по страницам заданного размера (задается в переменной, например, $MAX_PAGE_LEN).

Я вижу 2 пути решения:

1. Разбиение на лету.

Выбирается целая статья и выводится только ее часть – текущая страница.

2. Разбиение заранее.

Специальный скрипт проверяет всю базу статей и расставляет в тексте статей метки (например, ) через каждые $MAX_PAGE_LEN символов (конечно, нужно делать разбиение так, чтобы страница заканчивалась на точке или запятой).

А также нужна функция, которая расставляет метки в статье в случае ее добавления или редактирования.

Недостатки первого способа: - не будет ли сильной нагрузки на сервер, если разбивать всегда на лету для каждого посетителя? А если робот поисковой системы зайдет?

Не получится ли так, что некоторые слова или предложения будут теряться из-за приблизительного обрезания по точке или запятой?

Недостатки второго способа: - все равно нужно вырезать часть текста по меткам для каждого пользователя. И если будет нужно поменять число $MAX_PAGE_LEN, то нужно будет снова обрабатывать всю базу. Хотя, изменять переменную $MAX_PAGE_LEN придется очень редко – думаю, всего 2-3 раза, пока не подберется оптимальный размер страниц.

Сделать каждую страницу отдельной статьей – уже нет возможности (точнее, не хочется), т.к. уже есть сайт с опр. БД, переделывать которую полностью не вижу смысла.

В общем, нужна функция:

На входе: текст статьи, номер текущей страницы в статье.

На выходе: текст текущей страницы статьи.

И в зависимости от алгоритма: функция расставления меток концов страниц и скрипт расставления меток для всех статей в базе.

Выслушаю ваши предложения по срокам и ценам, а также алгоритму работы (сам PHP знаю около 5 лет, но сейчас редко пишу).

Заявки фрилансеров