Вырезать все теги, но оставить <>

Larson

Новичок
Вырезать все теги, но оставить <>

Есть НТМЛ файл. Нужно вырезать все теги оттуда. Легко это сделать с помощью strip_tags(), но допусти если у нас в тексте встречается строка Я знаю, что 5 < 6, а 8 > 7 , то тут начинаются проблемы, так как strip_tags все, что содержится между < > вырежет, а нужно оставить такую строчку в первоначальном виде.
Подскажите, можно ли это как нибудь решить?
 

tserbis

Guest
Не уверен, что это хорошая мысль, но лучше ничего не придумал:
если это разовая процедура, то можно просто вместо strip_tags использовать регулярки, записывать в массив вырезанные "тэги", сделать array_unique и просмотреть глазами - что вырезается; всё, что не тэги - ручками вписать обратно(не думаю, что таких случаев будет много)
 

[VS]

Guest
нефиг такие строки писать. в корректном html документе не должно быть символов <> кроме как для тэгов.
 

SeazoN

Guest
&lt;&gt;
По нормальному такая задача решается на стадии ввода и htmlspecialchars, а сейчас уж обломись.
Стандарты надо блюсти.

PS да помогут вам благословенные руки
 

Larson

Новичок
Так в том все и дело, что заранее неизвестно. Чел из ворда копирует форматированный текст в какое-то окно, типа эмулятора ворда (не я это делал, точно не знаю). При копировании этот текст, т к вордовский, копируется вместе с тегами (кто не знает - может попробовать что-нибудь скопировать в FrontPage).
Моя задача - вырезать все лишние теги (<font face>, <thead> и т.д.), оставить нужные (<i><b><br> и т.д.) - это все нормально, но как оставить то, что я писал выше.
 

InventOR^ULG

Новичок
если у тебя после этих знаков идут хотя бы один пробел -
попробуй заменить последовательности "< " на "&lt; " и " >" на " &gt;"
а уже потом вырезай дальше :)
 
Сверху