force_balance_tags() — закрывает все незакрытые HTML-теги в указанной строке, расставляет их в правильном порядке

Функция возвращает строку, в которой:

  • все HTML-теги закрыты,
  • преобразованы одиночные теги, например <br> и <hr> в <br /> и <hr /> соответственно,
  • все теги расположены в правильном порядке;
force_balance_tags( $text )

$text
(строка) (обязательное) строка с HTML-кодом, который требуется откорректировать.

Примеры использования

В качестве примера возьмем вот такой «недосписок» и пропустим его через функцию:

$html = '<ul class="list">
<li>обычный
<li>маркированный
<li>список
<li>и тег<br>переноса на новую строку</li>';
 
echo force_balance_tags($html);

Заметьте, в коде не хватает нескольких закрывающих тегов </li> и одного закрывающего </ul>, а вот скриншот того, что получаем в итоге:

результат действия функции force_balance_tags

Как видите, все теги теперь закрыты.

А теперь пример с нарушенным порядком HTML-тегов:

$html = '<p><em><a href="#wordpress">WordPress</p></a></em>';
 
echo force_balance_tags($html);

В итоге:

исправленный порядок тегов
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.