Если предполагается, что они будут вводиться именно с...15.11.04 09:10 Число просмотров: 3288 Автор: Heller <Heller> Статус: Elderman Отредактировано 15.11.04 09:13 Количество правок: 1
Если предполагается, что они будут вводиться именно с квадратными скобками, то просто заменяй их на треугольные уже после того, как будут произведены замены < и > на юникодовские эквиваленты.
Если они вводятся именно как теги в треугольных скобках, то один из вариантов - сначала заменить <Б> -> [Б], а после замены треугольных скобок на юникод вернуть обратно [Б] -> <Б>
Если предполагается, что они будут вводиться именно с...15.11.04 09:10 Автор: Heller <Heller> Статус: Elderman Отредактировано 15.11.04 09:13 Количество правок: 1
Если предполагается, что они будут вводиться именно с квадратными скобками, то просто заменяй их на треугольные уже после того, как будут произведены замены < и > на юникодовские эквиваленты.
Если они вводятся именно как теги в треугольных скобках, то один из вариантов - сначала заменить <Б> -> [Б], а после замены треугольных скобок на юникод вернуть обратно [Б] -> <Б>
код15.11.04 17:00 Автор: !? <!?> Статус: Member Отредактировано 15.11.04 17:01 Количество правок: 1
$post=~ s/\<B\>/\[B\]/g; #замена тегов на условные теги
$post=~ s/</</g; #очистка от левых тегов
$post=~ s/>/>/g; #очистка от левых тегов
$post=~ s/\[B\]/\<B\>/g; #замена условных тегов на теги
Если теги, которые предполагаются разрешенными не имеют аргументов - их можно разрешить. Если это, например, тег FONT со всякими там color, face и прочее, то лучше такие теги заменять на условные - мало ли что хаксор в них засунет.
Ещё второй нюанс - при простом разрешении тегов, всё равно в промежутке придётся приводить их к виду условных, а после вырезания всех запрещённых опять возвращать обратно. То есть совершаются лишните операции. Хотя это не так уж и трудоёмко и я бы не стал уделять этому большого внимания.
Ну и чисто человеческий фактор - условные теги из-за популярности phpBB и подобного прочно прижились в мозгах юзеров, а вот про существование HTML знает не каждый - придётся дополнительно объяснять. Лучше ориентироваться на известные продукты, имхо.