+7 926 070-36-31
Москва и Московская область

Очищаем параметры у html тегов регулярным выражением

14.03.2018

Данная заметка посвящена теме, как из тегов в тексте, например полученный парсером, убрать лишние параметры.

Представим ситуацию, что мы получил текст с тегами и лишними параметрами и храним его в переменной. Допустим в переменной $text у нас хранится ниже представленный фрагмент html текста.
<div class="text"><p style="text-align: justify;"><strong><span style="font-size: small;">&#1042; городе Сергие&#1074; &#1055;осад прошел Международный конкурс музыкального и хореографического искусст&#1074;а &#171;Мир &#1042;олшебного Искусст&#1074;а&#187;.</span></strong></p>
↵<p style="text-align: justify;"><span style="font-size: small;">&#1042; нем приняли участие <strong>хореографический коллекти&#1074; &#171;Dance-mix&#187; </strong>(руко&#1074;одитель Татьяна &#1043;аранина) и руко&#1074;одитель <strong>&#1074;окального ансамбля &#171;Улыбка&#187;</strong> Дома культуры села Федино Ирина Шолина.</span><o:p></o:p></p>
↵<p style="text-align: justify;"><span style="font-size: small;">&#1055;о решению &#1074;ысокопрофессионального жюри <strong>Ирина Шолина</strong> стала обладателем &#1043;ран-&#1055;ри &#1074; номинации &#171;&#1042;окальное искусст&#1074;о&#187;.</span><o:p></o:p></p>
↵<p style="text-align: justify;"><span style="font-size: small;">Хореографический коллекти&#1074; &#171;Dance-mix&#187; &#1074; номинации &#171;Эстрадный танец&#187; &#1074; &#1074;озрастной категории 8-10 лет стал лауреатом II степени. Руко&#1074;одитель коллекти&#1074;а <strong>Татьяна &#1043;аранина</strong> награждена &#1055;очетным дипломом за большой личный &#1074;клад &#1074; раз&#1074;итие культуры, сохранение духо&#1074;ности, яркую т&#1074;орческую инди&#1074;идуальность, &#1074;ысокий профессионализм.</span><span style="font-size:12.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;"><o:p></o:p></span></p></div>
В тексте много нежных параметров, цвет текста, размеры и т.д. Если мы его вставим на сайт, то оформление может поехать или станет некрасивым.

Мы можем используя регулярные выражения убрать лишние параметры. 

Регулярное выражение ниже, убирает любые параметры, кроме заданных в скобках:
\w+(?<!align|title|alt|height|width|src)=".+?"
Что означает <!align|title|alt|height|width|src), что здесь мы можем перечислить через "|" какие параметры не убирать, сейчас это  align, title, alt, height, width, src.

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

$new_text= preg_replace('/\w+(?<!href|target)=".+?"/s', '', $text);

Данным кодом мы в новую переменную $new_text запишем значение $text, из которой убрали почти все параметры. И наш код теперь выглядит так

<div ><p ><strong><span >&#1042; городе Сергие&#1074; &#1055;осад прошел Международный конкурс музыкального и хореографического искусст&#1074;а &#171;Мир &#1042;олшебного Искусст&#1074;а&#187;.</span></strong></p>
↵<p ><span >&#1042; нем приняли участие <strong>хореографический коллекти&#1074; &#171;Dance-mix&#187; </strong>(руко&#1074;одитель Татьяна &#1043;аранина) и руко&#1074;одитель <strong>&#1074;окального ансамбля &#171;Улыбка&#187;</strong> Дома культуры села Федино Ирина Шолина.</span><o:p></o:p></p>
↵<p ><span >&#1055;о решению &#1074;ысокопрофессионального жюри <strong>Ирина Шолина</strong> стала обладателем &#1043;ран-&#1055;ри &#1074; номинации &#171;&#1042;окальное искусст&#1074;о&#187;.</span><o:p></o:p></p>
↵<p ><span >Хореографический коллекти&#1074; &#171;Dance-mix&#187; &#1074; номинации &#171;Эстрадный танец&#187; &#1074; &#1074;озрастной категории 8-10 лет стал лауреатом II степени. Руко&#1074;одитель коллекти&#1074;а <strong>Татьяна &#1043;аранина</strong> награждена &#1055;очетным дипломом за большой личный &#1074;клад &#1074; раз&#1074;итие культуры, сохранение духо&#1074;ности, яркую т&#1074;орческую инди&#1074;идуальность, &#1074;ысокий профессионализм.</span><span ><o:p></o:p></span></p></div>
Как видите в нашем html коде уже нет параметров отвечающих за оформление, таких как стиль, размер текста и т.д.



Возврат к списку



6лет
опыта
разработки
49
выполненых
проектов
100%
клиентов
нас рекламируют своим друзьям
6 лет
разрабатываю
сервисы для Гос органов