Разбиение текста на страницы - PHP
Есть текстовые файлы размеров по 100-500кб.
Нужно разместить их на сайте в виде статей.
Хранится тексты в mysql, 1 файл – одна статья.
Но выводить нужно по страницам заданного размера (задается в переменной, например, $MAX_PAGE_LEN).
Я вижу 2 пути решения:
1. Разбиение на лету.
Выбирается целая статья и выводится только ее часть – текущая страница.
2. Разбиение заранее.
Специальный скрипт проверяет всю базу статей и расставляет в тексте статей метки (например, ) через каждые $MAX_PAGE_LEN символов (конечно, нужно делать разбиение так, чтобы страница заканчивалась на точке или запятой).
А также нужна функция, которая расставляет метки в статье в случае ее добавления или редактирования.
Недостатки первого способа: - не будет ли сильной нагрузки на сервер, если разбивать всегда на лету для каждого посетителя? А если робот поисковой системы зайдет?
Не получится ли так, что некоторые слова или предложения будут теряться из-за приблизительного обрезания по точке или запятой?
Недостатки второго способа: - все равно нужно вырезать часть текста по меткам для каждого пользователя. И если будет нужно поменять число $MAX_PAGE_LEN, то нужно будет снова обрабатывать всю базу. Хотя, изменять переменную $MAX_PAGE_LEN придется очень редко – думаю, всего 2-3 раза, пока не подберется оптимальный размер страниц.
Сделать каждую страницу отдельной статьей – уже нет возможности (точнее, не хочется), т.к. уже есть сайт с опр. БД, переделывать которую полностью не вижу смысла.
В общем, нужна функция:
На входе: текст статьи, номер текущей страницы в статье.
На выходе: текст текущей страницы статьи.
И в зависимости от алгоритма: функция расставления меток концов страниц и скрипт расставления меток для всех статей в базе.
Выслушаю ваши предложения по срокам и ценам, а также алгоритму работы (сам PHP знаю около 5 лет, но сейчас редко пишу).