Закрытие тегов HTML перед открытием нового в переполнении стека

У меня есть пара тысяч фрагментов HTML, я ищу массовое редактирование с помощью php.

Формат HTML, в котором они все усложняют, выглядит следующим образом:

<table>
<table>
</table>

PHP Tidy кажется отличным решением.

Я пытаюсь что-то вроде

$tidy = new Tidy();
$tidy_config = array(
'clean' => true,
'output-html' => true,
'show-body-only' => true,
'wrap' => 0,
'drop-proprietary-attributes' => true,
'repeated-attributes' => 'keep-first'
);

$tidy = tidy_parse_string($htmlstring, $tidy_config, 'UTF8');
$tidy->cleanRepair();
echo $tidy;

Я тоже сталкивался с этой функцией

function closetags($html) {
preg_match_all('#<([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
$openedtags = $result[1];
preg_match_all('#</([a-z]+)>#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], $closedtags)) {
$html .= '</'.$openedtags[$i].'>';
} else {
unset($closedtags[array_search($openedtags[$i], $closedtags)]);
}
}
return $html;
}

Оба в основном возвращают одно и то же с этими блоками HTML

<table>
<table>
</table>
</table>

Поэтому они закрывают его, но … странный способ форматирования этих блоков html, перекрытие таблиц, как этот вывод, вызывает некоторые серьезные проблемы.

Мне нужно закрыть теги ПЕРЕД открытием нового .. означая вывод, как это:

<table>
</table>
<table>
</table>

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

редактировать: прошел всю справочную страницу .. много чего перепробовал, ничего не получалось. Не думайте, что это то, что я могу сделать в Tidy (поправьте меня, если я ошибаюсь ..)

У кого-нибудь есть идеи по этому поводу?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]