<?php
require_once('simple_html_dom.php');
$html = new simple_html_dom();
$html->load_file('input1.html');
// Смотрим, что было в начале
print $html->save();
// Ищем таблицы
$tables = $html->find('table');
if ($tables && is_array($tables) && count($tables)) {
foreach ($tables as $table) {
// Разбиваем исходную таблицу на две части
$left_table = new simple_html_dom();
$left_table->load($table->outertext);
$right_table = new simple_html_dom();
$right_table->load($table->outertext);
// Из первой таблицы необходимо удалить все строки с номером более count/2
$rows = $left_table->find('tr');
if ($rows && is_array($rows) && ($count = count($rows))) {
foreach ($rows as $index => $row) {
if ($index >= round($count/2)) {
$row->outertext = '';
}
}
}
// Из второй таблицы необходимо удалить все строки с номером менее count/2
$rows = $right_table->find('tr');
if ($rows && is_array($rows) && ($count = count($rows))) {
foreach ($rows as $index => $row) {
if ($index < round($count/2)) {
$row->outertext = '';
}
}
}
// Собираем результат. Здесь можно поправить внешний вид результата так, как нужно
$two_tables = '
<table>
<tr>
<td valign="top">'.$left_table->outertext.'</td>
<td valign="top">'.$right_table->outertext.'</td>
</tr>
</table>
';
// Заменяем исходную таблицу на две
$table->outertext = $two_tables;
// Освобождаем память, может понадобиться при большом количестве таблиц, но в целом не обязательно
$left_table->clear();
$right_table->clear();
}
}
// Выводим результат после замены, в виде строки
print $html->save();
// Также можно сохранить в файл
$html->save('output.html');
?>
所以,我们知道HTML作为输入来的,有一个或多个表格,需要分成两部分,必须折叠成两列,也有一个表格
子任务:
对于测试数据,我从问题评论中的链接中获取了一个简单的表格:
拆分操作的结果将是下表,其中包含两个表: