подскажите алгоритм

  • Автор темы Автор темы GNU
  • Дата начала Дата начала

GNU

Guest
подскажите алгоритм

есть html страница, состоящая из последовательно идущих друг за другом таблиц,
таблицы идут сверху вниз, одинаковы по ширине, остальные параметры разные (цвет, бордеры и т.п.)

задача - разделить текст на блоки - 1 блок, 1 такая таблица

проблема - некоторые из таблиц также содержат таблицы, вложенные

я считываю файл в массив,
прогоняю array_walk'ом массив через функцию по принципу -

если строка содержит <table - занести в новый массив ключем - номер строки, значением - 'ON'
если строка содержит </table - занести в новый массив ключем - номер строки, значением - 'OFF'

естественно, из-за вложенных таблиц получается что-то вида

5 = > ON
11 = > ON
18 = > ON
29 = > OFF
34 = > OFF
36 = > ON
59 = > OFF
64 = > OFF

(возможен, конечно, случай, когда в одной строке окажется и начало и конец таблицы,
но считаем, что этого нет)

как видно, таблица та что надо, начинается в строке 5 и заканчивается в строке 64,

каким алгоритмом можно получить эти данные? в голове вертится рекурсия,
но не пойму, как прикрутить...
 
а если попробовать не по <table и </table, а каждую нужную таблицу кинуть в <div> и делать прогон по <div и </div?

PS: а страница то ваша?
 
"а страница то ваша?" :)

Кто ж свою страницу с такими подвыподвертами разбирает?..
 
zOrg, спасибо за совет

остальным тоже спасибо
 
Автор оригинала: crocodile2u
"а страница то ваша?" :)

Кто ж свою страницу с такими подвыподвертами разбирает?..
Если надо и не на то пойти можно.
ЗЫ: Если у вас есть решение по лучше - приму его к сведению.
 
В общем узнать, все ли закрылось можно так - четно/не четно.

например было вначале 0 открытых. Потом стало 1, потом стало 2 (ого, вложенная!), потом стало 1 (вложенная закрылась), потом стало 0 (О! Таблицу - в массив)...

www.ustup.ru/2/index.php

USER: foo
PASSWD: bar
 
гениально!

Originally posted by Вилисова
В общем узнать, все ли закрылось можно так - четно/не четно.

например было вначале 0 открытых. Потом стало 1, потом стало 2 (ого, вложенная!), потом стало 1 (вложенная закрылась), потом стало 0 (О! Таблицу - в массив)...

www.ustup.ru/2/index.php

USER: foo
PASSWD: bar
великолепно! Спасибо.

Итого:

1) если ON - заносим номер строки в массив и увеличиваем счетчик на 1,
2) если OFF - уменьшаем счетчик на 1
3) счетчик обнулился? Заносим номер строки в массив!

Действительно полезно, в т.ч. и при переборе диркторий!
Класс!
 
Сверху