Форум 1С-Битрикс

Задавайте свои вопросы и отвечайте на вопросы других участников форума

Страницы: 1
Ответить
Как удалить ненужные и пустые html теги из текста с помощью регулярных выражений на php
 
При экспорте товаров из интернет магазина на битрикс в файл (фид) yml, выгружается описание товара (PREVIEW_TEXT) с кучей ненужных html тегов. Описание для анонса редактировать у большого количества товаров нет времени и возможности.
Как с помощью php
- удалить пустые теги  <p> из html
- удалить подряд идущие теги <br>
- почистить и удалить все ненужные теги из текста
 
Для удаления html и php тегов из текста можно использовать стандартную пхп функцию strip_tags( string str [, string allowable_tags] ). Чтобы оставить теги, которые нужны (которые не должны удаляться) укажите их во втором параметре.
Код
strip_tags($html, '<p><br><b><i><br><h1><h2><h3><h4><h5><h6>');

Для удаления подряд идущих повторяющихся тегов <br> используйте регулярное выражение. В итоге останется только одна br
Код
preg_replace('{(<br[\\s]*(>|\/>)\s*){2,}}i','$1',$html);

Для удаления <p> тегов с пустым содержимым используйте регулярку
Код
preg_replace("/<p[^>]*>(\s{0,}(<[a-z]*[^>]*>){0,}\s{0,}){0,}<\\/p>/",'',$html);

Для удаления атрибутов стиля (style) из тегов необходимо использовать регулярное выражение
Код
preg_replace('/(<[^>]+) style=".*?"/i', '$1', $html); 

Для удаления атрибута класс (class) из тегов необходимо использовать регулярное выражение
Код
preg_replace('/(<[^>]+) class=".*?"/i', '$1', $html); 

ЗЫ Не забудьте удалить символ неразрывного пробела &nbsp;

preg_replace("/&nbsp;/",'',$html);
Страницы: 1
Ответить
Читают тему (гостей: 4)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Отправить Отменить