Как разорвать html код ?

Mishael
На сайте с 08.11.2001
Offline
217
746

Есть простенький html код (<a><p><img><font>)

Это статейка, добавляемая из WISIWIG юзером.

Надо разбить её на две части (вывести половину на одной странице, а вторую на другой).

Но надо чтобы разрыв html кода не привел к разлетанию страницы, т.е. вероятно в месте разрыва теги надо правильно закрыть, потом на второй правильно открыть. Ну и не попасть вообще внутрь тега самого. Какие варианты подскажет сообщество?

Мой надежный веломагазин (https://veliki.com.ua/) на CMS Melbis Shop 6 (http://www.melbis.com/)
artrozik
На сайте с 19.02.2008
Offline
180
#1

Mishael, JQuery посмотрите, может подойдет. Удобно и красиво.

Mishael
На сайте с 08.11.2001
Offline
217
#2
artrozik:
Mishael, JQuery посмотрите, может подойдет. Удобно и красиво.

Не - совсем не то. Надо чтобы система сама била на страницы html код, чтобы он не ломался.

n0name
На сайте с 22.12.2006
Offline
54
#3

Код там не такой простой будет. Могу примерный алгоритм подсказать:

1) Создаем новый текст без тегов. Некоторые теги удаляем вместе с содержимым (например тег <a>), тк разбить статью посередине текста ссылки нам не подходит.

2) Полученный текст разбиваем на примерно 2 равных куска. Разбивать лучше по примерно такому шаблону [^. ]{3,}\.

3) Берем из первой половины статьи кусок текста с последнего пробела и до конца.

4) В исходном тексте (с тегами) ищем этот кусок (из п.4). Текст после найденного вхождения и будет нашей второй частью.

5) Осталось теперь пройтись по первому тегу, найти незакрытые теги, закрыть их в конце первой половины и открыть в начале второй.

Это самый примитивный алгоритм. На деле окажется еще сложнее, тк много подводных камней.

Сервис сравнения цена на VPS (http://vpska.com/)
C
На сайте с 21.03.2010
Offline
10
#4

Всё более проще чем кажется.

Есть текст, как Вы говорите в html-теугах.

В идеале хорошо если этот текст не идёт одной строкой.

В таком случае загоняйте строки в масив(разднелитель /r/n).

Подщитываете количество строк, делите на два при этом округляйте в болшую сторну.

Получаете 2 чила. Первое - количество строк на первой странице, второе - на второй.

Например, всего 201 строка.

Первое - 101

Второе - 100

Число с которого начинается вторая страница - Первое + 1 = 102

Вывод:

1 страница - строки из масива от 1 до 101

2 страница - строки из масива от 102 до 201

Если тескст идёт одной строкой, тогда можно делить, например, по тегу <p>, но результат может быть не очень.

[umka]
На сайте с 25.05.2008
Offline
456
#5

Есть код, разбивающий большой html на куски заданного (примерного) размера.

Корректно закрывает и открывает заново теги.

Сам недавно сделал для вордпресса.

Над кодом пришлось изрядно поломать голову, поэтому, если готовы поддержать мои финансовые интересы :) (в районе 30$) — пишите.

А потом выложу на всеобщее обозрение.

Лог в помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий