如何使用 simple_html_dom 或 Dom 文档跳过最后 n 行?
How to skip last n rows with simple_html_dom or Dom Document?
有没有办法通过 simple_html_dom 或 dom 文档始终跳过已解析的 table 的最后 n 行?
我尝试使用固定的行号,但由于源文件可以更改其行数,所以没有成功。
这是我解析table的标准代码。你对我有什么想法或提示,如何总是跳过最后两行?
$table = $html->find('table', 1);
$rowData = array();
foreach($table->find('tr') as $row) {
// initialize array to store the cell data from each row
$roster = array();
foreach($row->find('td') as $cell) {
$roster[] = $cell->innertext;
}
foreach($row->find('th') as $cell) {
$roster[] = $cell->innertext;
}
$rowData[] = $roster;
}
foreach ($rowData as $row => $tr) {
echo '<tr>';
foreach ($tr as $td)
echo '<td>' . $td .'</td>';
echo '</tr>';
}
echo '</table></td><td>';
您可以简单地从 find
个结果数组中 pop
两项:
$rows = $table->find('tr');
array_pop($rows);
array_pop($rows);
foreach ($rows as $row) {
// do stuff here
}
当然,这不是一个理想的解决方案,作为替代方案,您可以获得 count
找到的行并使用索引来控制 foreach
中的当前元素:
$rows = $table->find('tr');
$limit = count($rows) - 2;
$counter = 0;
foreach ($rows as $row) {
if ($counter++ < $limit) {
break;
}
// do stuff
}
有没有办法通过 simple_html_dom 或 dom 文档始终跳过已解析的 table 的最后 n 行?
我尝试使用固定的行号,但由于源文件可以更改其行数,所以没有成功。
这是我解析table的标准代码。你对我有什么想法或提示,如何总是跳过最后两行?
$table = $html->find('table', 1);
$rowData = array();
foreach($table->find('tr') as $row) {
// initialize array to store the cell data from each row
$roster = array();
foreach($row->find('td') as $cell) {
$roster[] = $cell->innertext;
}
foreach($row->find('th') as $cell) {
$roster[] = $cell->innertext;
}
$rowData[] = $roster;
}
foreach ($rowData as $row => $tr) {
echo '<tr>';
foreach ($tr as $td)
echo '<td>' . $td .'</td>';
echo '</tr>';
}
echo '</table></td><td>';
您可以简单地从 find
个结果数组中 pop
两项:
$rows = $table->find('tr');
array_pop($rows);
array_pop($rows);
foreach ($rows as $row) {
// do stuff here
}
当然,这不是一个理想的解决方案,作为替代方案,您可以获得 count
找到的行并使用索引来控制 foreach
中的当前元素:
$rows = $table->find('tr');
$limit = count($rows) - 2;
$counter = 0;
foreach ($rows as $row) {
if ($counter++ < $limit) {
break;
}
// do stuff
}