Удалить некоторые тэги из текста, вставленного в форму из word

Yura

Новичок
Удалить некоторые тэги из текста, вставленного в форму из word

Копирую текст в поле textarea из ворда. В тексте есть и таблицы, потом еще и картинки кое-где нужно вставить. Можно ли с помощью РНР перед сохранением в БД удалить лишние тэги (напр., "<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:eek:ffice:eek:ffice" />", "<o:p></o:p>"; и в нужных тэгах лишние атрибуты (напр., в тэге <p> удалить "class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"" и др.) ?
 

Андрейка

Senior pomidor developer
а кто его знает как... по какому принципу то удаляешь? скорее всего str_replace или регулярками..
 

Yura

Новичок
Использую регулярку. class=MsoNormal меняю на "" с помощью ereg_replace(). а вот заменить style="" и все, что внутри кавычек на "" не получается. Подскажите, как сделать. Или может какой-нибудь получше метод избавления от лишних тэгов или их атрибутов подскажете?
 

Vallar_ultra

Любитель выпить :)
2Yura
Напиши пример и то что надо грохнуть, а вообще
http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2
 

Yura

Новичок
Вот один из кусков кода:
<P style="MARGIN: 0cm 0cm 0pt"><B><FONT size=3><FONT
face="Times New Roman">Отчет маркетиногвого исследования.<o:p></o:p></FONT></FONT></B></P><BR>
<P style="MARGIN: 0cm 0cm 0pt"><B><FONT size=3><FONT
face="Times New Roman">&nbsp;<o:p></o:p></FONT></FONT></B></P><BR>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.4pt; LINE-HEIGHT: 150%; TEXT-ALIGN: justify"><SPAN style="TEXT-TRANSFORM: uppercase"><FONT
size=3><FONT face="Times New Roman">информационная ценность
исследования<o:p></o:p></FONT></FONT></SPAN></B></P><BR>

Дальше есть еще и таблицы. Короче, обычный html-код, формируемый вордом
 

Yura

Новичок
Автор оригинала: Vallar_ultra
так а чё с ним сделать-то надо? к какой форме привести?
Вот, что нужно получить:

<P><B>Отчет маркетиногвого исследования.</B></P><BR>
<P>информационная ценность
исследования</P><BR>
 

Vallar_ultra

Любитель выпить :)
Ну попробуй что-нить типа
PHP:
// $sub  - это твой текст
$regExp = '/<\/?FONT.[^>]*>|o:|<\/?SPAN.[^>]*>/i';
$sub = preg_replace($regExp,'',$sub);
$regExp = '/<p.[^>]*>/i';
$sub = preg_replace($regExp,'<p>',$sub);
 

Yura

Новичок
Спасибо! Оба варианта отличные. Я уже реализовал, который предложил Vallar ultra
 

Vallar_ultra

Любитель выпить :)
2Yura
А вообще если будет не лень - попробуй написать более универсальный код, желательно с применением ООП-а, и тогда его имплементация под разные задачи подобного толка станет проще и быстрее. И задачи такие встречаются довольно часто :))
 
Сверху