Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Наличие открывающихся и закрывающихся тэгов

#1 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71
0

Отправлено 30 Июль 2010 - 15:15

а можно ли реализовать парсер, который проверяет введеный текст на наличие открывающихся и закрывающихся тэгов и если тэг не закрыт или не открыт удаляет его и как?

 

 

  • 0

#2 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 30 Июль 2010 - 15:55

Ну проверить наверное не сложно, нужно же чтобы было равное количество открывающих и закрывающих тегов. Или я не прав?


  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#3 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 30 Июль 2010 - 18:22

прав
  • 0

#4 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 30 Июль 2010 - 19:25

Не всегда. Есть такое понятие, как контейнерные теги, это как раз то, о чем вы говорите. А есть теги одиночные. они закрываются сами в себе.

Например <br />
Этот слэш в конце, как раз и обозначает то, что тег закрыт.
Таких тегов несколько.
<hr />
<br />
<img />
<input />

И так далее.
Думаю, достаточно понятно объяснил. А для таких целей, а так же для очистки кода HTML от мусора, существует TIDY.
  • 0

#5 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 30 Июль 2010 - 19:34

мне надо конкретно тэг <div></div>
  • 0

#6 AcidPrice

AcidPrice
  • Пользователь
  • 17 сообщений
  • Репутация: 0

Отправлено 31 Июль 2010 - 01:24

Ну дримвивер за этим делом следит, и показывает, когда тег не закрыт
  • 0

#7 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 31 Июль 2010 - 05:33

блин я же описал задачу, зачем мне ваши программы, через форму на сервере вводиться текст, нужно его проверить на наличие непарного тега div и удалить его
  • 0

#8 CashMagnat

CashMagnat
  • Пользователь
  • 24 сообщений
  • Репутация: 0

Отправлено 05 Август 2010 - 01:00

тут мне кажется подойдут только рег експы (
  • 0

#9 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 05 Август 2010 - 11:32

Всё можно сделать.
Я бы сделал так для одного тега:
1) Есть строка с поиском
2) Есть регулярное выражение по поиску либо <div>, либо </div>
3) Есть функция обратного вызова, в которой проверяется, что нашлось, <div> или</div>, из этого составляется строка из 0 и 1 по порядку, где 0 - закрывающий, 1 - открывающий.
Затем алгоритм обработки прост. Есть переменная, которая хранит значение незакрытых, с открытием ++ с закрытием --, находим нужные нам места.

Вариант второй:
1) Есть регулярное выражение по поиску <div></div>, оно вызывает функцию обратного вызова, в которую передаётся внутренность дива.
2) В функции обратного вызова зацикленность на поиск дивов внутри себя. Как только не нашёлся парный, сразу можно и удалить.

Оба варианта достаточно громоздки, вроде есть вариант проще, но надо подумать...
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru