Функция на PHP для закрытия незакрытых тегов

dzsoftИнтересная функция с rmcreative.ru. Функция позволяет закрыть незакрытые HTML-теги. Может быть очень полезна и необходима. Создана с использованием регулярных выражений.

function closetags($html) {
    $single_tags = array('meta','img','br','link','area');

preg_match_all(‘~<([a-z0-9]+)(?: .*)?(?<![/|/ ])>~iU’, $html, $result);
$openedtags = $result[1];
    preg_match_all(‘~</([a-z0-9]+)>~iU’, $html, $result);
$closedtags = $result[1];
$len_opened = count($openedtags);
if (count($closedtags) == $len_opened) {

 return $html; }

$openedtags = array_reverse($openedtags);
for ($i=0; $i < $len_opened; $i++) {

if (!in_array($openedtags[$i], $single_tags)) {
   
if (FALSE !== ($key = array_search($openedtags[$i], $closedtags))) {
  unset($closedtags[$key]);
     }
    else {

  $html .= ‘</’.$openedtags[$i].‘>’;
    }
}
    }
    return $html;
}

Навигация по записям