Метод закрытия незакрытых HTML тегов

В продолжение темы: Метод закрытия незакрытых BBcode, где я писал, что нашел функцию для закрытия незакрытых HTML тегов, немного поправил ее, под незакрытые BBccode и она работала на меня.

В этой теме та самая функция, верее метод с моего класса:
	public function closeAllHtmlTags($html)
	{
		preg_match_all('#<([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
		$openedTags = $result[1];
		$lenOpened  = count($openedTags);

		preg_match_all('#</([a-z]+)>#iU', $html, $result);
		$closedTags = $result[1];

		if (count($closedTags) == $lenOpened)
		{
			return $html;
		}

		$openedTags = array_reverse($openedTags);
		for ($i = 0; $i < $lenOpened; $i++)
		{
			if (!in_array($openedTags[$i], $closedTags))
			{
				$html .= '</' . $openedTags[$i] . '>';

			}
			else
			{
				unset ($closedTags[array_search($openedTags[$i], $closedTags)]);
			}
		}

		return $html;
	}

Данный метод найдет все незакрытые HTML теги и добавит недостающие элементы.