Подтвердить что ты не робот

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

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

Текст будет вставлен прямо из MS Word или OpenOffice и в него будет использоваться TinyMCE, редактор Rich-Text, который позволит вам добавить в текст базовое форматирование 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 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>
4b9b3361

Ответ 1

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

$text = preg_replace('#(<[a-z ]*)(style=("|\')(.*?)("|\'))([a-z ]*>)#', '\\1\\6', $text);

Ответ 2

Вот решение preg_replace, полученное из ответа Крозина. Это позволяет атрибуты до и после атрибута стиля, фиксирующего проблему с привязными тегами.

$value = preg_replace('/(<[^>]*) style=("[^"]+"|\'[^\']+\')([^>]*>)/i', '$1$3', $value);

Ответ 4

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

$text = preg_relace('#<(.+?)style=(:?"|\')?[^"\']+(:?"|\')?(.*?)>#si', '<a\\1 \\2>', $text);

Ответ 5

Не могли бы вы просто использовать strip_tags и оставить в тегах, которые хотите, например, <p>, <strong> и т.д.

Ответ 6

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

Ответ 8

Вы можете использовать: $content = preg_replace ('/style = [^ > ] */', '', $content);

Ответ 9

Мне нужно очистить стиль от тегов IMG и решен с помощью этого кода:

$text = preg_replace('#(<img (.*) style=("|\')(.*?)("|\'))([a-z ]*)#', '<img \\2\\6', $text);
echo  $text;