Forum Webscript.Ru

Программирование => PHP => Тема начата: AntiMozg от 02 Июля 2006, 00:01:00

Название: Разбиение текста на странице
Отправлено: AntiMozg от 02 Июля 2006, 00:01:00
В бан не отправлять - ибо не совсем о том, о чем пишут обычно :)

Столкнулся с задачей разбить текст постранично в зависимости от его, текста, количества. Проблем не было бы, будь этот текст без форматирования (бишь HTML теги, списки), да еще и создаваемого автоматом в Java редакторе, через админпанель сайта.

Как быть? Количесчтво абзацев не посчитать - код мешает. Стандартизировать тексты - мечта, при этом несбыточная - заказчик не желает. А длинные списки ему, между тем, не нравятся.

Вот такая проблемка. Сижу и тупо пялюсь - ничего в голову не приходит...

Спасибо заранее :)
Название: Разбиение текста на странице
Отправлено: Altaxar от 02 Июля 2006, 02:47:57
Есть идейка, но кажись глупая, что первое в голову вбрело :)
Делаеш автоматический пре-вью, тоесть запускаеш текст а с помощи Java-Script узнаеш вусоту страници, так пусть скрипт на PHP и мучает пока не аптемизирует под даный текст, разбивку на страници, сохраняеш полученые даные и пользуешся ими :)
Название: Разбиение текста на странице
Отправлено: hanslinger от 03 Июля 2006, 10:11:39
Я бы бегал по тексту посимвольно и считал символы, которые не стоят в тегах. Типа на < подсчет прекращается, на > — возобновляется.
Название: Разбиение текста на странице
Отправлено: CGVictor от 03 Июля 2006, 10:14:08
hanslinger
Если уж на то пошло, то проще сразу теги повырезать, посмотреть, гле делать разрывы, затем применить схему на оригинальном тексте.
Но хочется чего-то красивее.
Название: Разбиение текста на странице
Отправлено: hanslinger от 03 Июля 2006, 10:41:04
Какую схему? Если уж вырезать, то надо запоминать длину каждого вырезанного куска, а нафик оно надо.
Название: Разбиение текста на странице
Отправлено: Altaxar от 03 Июля 2006, 12:17:32
Весь прикол, что подсчетом символов вы нечего не добьетесь, так как символы разные по ширине, также возможно, что есть разные сшрифты с разними размерами, да еще плюс перенос слов, тут прийдется сумашедшую вычислительную машину делать для подщета всего этого.
Как уже предлогал, я вижу в этом решение, тоесть выводить текст на сраницу с помощью метода "разделяй и властвуй" и проверят скоко текста вывелось, с помощи Java-Script отпровляет высоту, если много -- делим на 2, если мало то добовляем половину поделеного.. и таким методом подходим к границе допуснимого размера.
Название: Разбиение текста на странице
Отправлено: hanslinger от 03 Июля 2006, 12:39:23
Kneaz
Бред.
Название: Разбиение текста на странице
Отправлено: Altaxar от 03 Июля 2006, 12:48:53
hanslinger
Тогда предложи лучше?
Название: Разбиение текста на странице
Отправлено: CGVictor от 03 Июля 2006, 14:55:17
Господа, а не логичнее исходить из содержания, нежели из объемов? ;)
Название: Разбиение текста на странице
Отправлено: AntiMozg от 03 Июля 2006, 16:11:15
Исходя из содержания, сегодня думал над структурой со встроенными якорями, что-то типа:


Текст, текст, текст.

Текст, текст, текст.

Текст, текст, текст.

Таким образом человек в любом месте сможет всунуть подобный коммент, дав железке понять, что тут надо оборваться.
К тому же, если делать так - придется сначала эти комменты в тексте посчитать и в зависимости от наличия вывести кол-во страниц доступных к просмотру, ну а если не обнаружится - вовсе не выводить.


Буду думать как реализовать, потому что готового решения по этому вопросу у меня нет. Если у вас есть - будьте так добры :)
Название: Разбиение текста на странице
Отправлено: Altaxar от 03 Июля 2006, 16:13:32
CGVictor
AntiMozg и я написали почему подсчет символов не прокатывает.
ну а от hanslinger хотел бы услышать причину такого ответа, а не мнение, что в моей версии тебя не устраиват, админ сайта правит текст а потом жмет на кнопку на пару минут(в зависимо от текста) идет расфосовка текста, а по полученым даным мы эти страници показываем посетителем сайта, причем при моей врсии мне всеравно : есть там JavaScript или нет, или тому подобного, что может влиять на размер страници.
Название: Разбиение текста на странице
Отправлено: hanslinger от 03 Июля 2006, 16:20:43
Kneaz
Ты написал не «почему подсчет символов не прокатывает», а ахинею. Подумай, например, что произойдет, когда пользователь решит изменить размер окна браузера.
AntiMozg
[p]strpos[/p]
[p]preg_match[/p] + PREG_OFFSET_CAPTURE
Название: Разбиение текста на странице
Отправлено: AntiMozg от 03 Июля 2006, 16:25:28
hanslinger
Ухх, да функции то поиска и подсчета где-то слышал ;), но все равно спасибо.

Мне главное распечатать От page2 и До page3 как бы - вот где я спотыкаюсь :)
Название: Разбиение текста на странице
Отправлено: hanslinger от 03 Июля 2006, 16:35:02
[p]substr[/p] =)
Название: Разбиение текста на странице
Отправлено: Altaxar от 03 Июля 2006, 16:39:04
hanslinger
Подумай, например, что произойдет, когда пользователь решит изменить размер окна браузера.

Подумал, какраз об этом, и что при подсчете символов нечего не получится тоже по тойже причине.
То, что с якорями AntiMozg будет делать я хотел довести до афтомотизма, тоесть даеш ограничение по высоте и PHP тебе их проставит.
А проблема с изменением размера окна браузера, под всех не угодиш, а выбераеш оптемальный вариант, как и на любом сайте.
Название: Разбиение текста на странице
Отправлено: Altaxar от 03 Июля 2006, 16:45:28
AntiMozg
  $text=  // подставляеш свой текст
  $pattern = \'/(.+?)/\';
  preg_match($pattern, $text, $matches);
  $matches[1]  // твой кусок текста
Название: Разбиение текста на странице
Отправлено: hanslinger от 03 Июля 2006, 16:50:38
[OFF]прибейте уже кто-нибудь[/OFF]