Удаление встроенных стилей с помощью php

Я использую php для вывода некоторого обогащенного текста. Как я могу разделить встроенные стили полностью?

Текст будет вставляться прямо из MS Word или OpenOffice, и в, который использует TinyMCE, редактор Обогащенного текста, который позволяет Вам добавлять основное форматирование HTML к тексту. Однако я хочу удалить встроенные стили на

теги (см. ниже), но сохраняют

сами теги.

<p style="margin-bottom: 0cm;">A patrol of Zograth apes came round the corner, causing Rosette to pull Rufus into a small alcove, where she pressed her body against his. &ldquo;Sorry.&rdquo; She said, breathing warm air onto the shy man's neck. Rufus trembled.</p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;">Rosette checked the coast was clear and pulled Rufus out of their hidey hole. They watched as the Zograth walked down a corridor, almost out of sight and then collapsed next to a phallic fountain. As their bodies hit the ground, their guns clattered across the floor. Rosette stopped one with her heel and picked it up immediately, tossing the other one to Rufus. &ldquo;Most of these apes seem to be dying, but you might need this, just to give them a helping hand.&rdquo;</p>
10
задан Onion 22 March 2010 в 23:28
поделиться

6 ответов

Я быстро собрал это воедино, но для «встроенных стилей» (!) Вам понадобится что-то вроде

$text = preg_replace('#(<[a-z ]*)(style=("|\')(.*?)("|\'))([a-z ]*>)#', '\\1\\6', $text);
28
ответ дан 3 December 2019 в 13:29
поделиться

Не могли бы вы просто использовать strip_tags и оставить нужные теги, например

, и т. Д.?

0
ответ дан 3 December 2019 в 13:29
поделиться

Вы можете использовать регулярные выражения:

$text = preg_relace('#<(.+?)style=(:?"|\')?[^"\']+(:?"|\')?(.*?)>#si', '<a\\1 \\2>', $text);
2
ответ дан 3 December 2019 в 13:29
поделиться

Используйте HtmlPurifier

5
ответ дан 3 December 2019 в 13:29
поделиться

Я нашел этот класс очень полезным для работы с атрибутами полосы (особенно там, где присутствует сумасшедшее форматирование текста в MS Word):

http: // semlabs .co.uk / journal / php-strip-attributes-class-for-xml-and-html

0
ответ дан 3 December 2019 в 13:29
поделиться

Почему бы вам просто не перезаписать теги. Таким образом, у вас будут чистые теги без встроенного стиля.

0
ответ дан 3 December 2019 в 13:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: