0

我有一个table,其列数可以根据报废页面的配置而改变(我无法控制它)。我只想从由列标题指定的特定列中获取信息。

样品表:

<table>
    <tr>
        <td>Name</td>
        <td>Age</td>
        <td>Marks</td>
    </tr>
    <tr>
        <td>A</td>
        <td>20</td>
        <td>90</td>
    </tr>
    <tr>
        <td>B</td>
        <td>21</td>
        <td>80</td>
    </tr>
    <tr>
        <td>C</td>
        <td>22</td>
        <td>70</td>
    </tr>
</table>

我的工作 PHP 代码显示所有列:

foreach($html->find("table#table2 tr td") as $td) {
  $code = $td;
  echo $code;
}

需要的代码格式:

foreach($html->find('table#table2 td') as $td) {
  /* Get td1 data */ 
  /* Code1 to store td data 1 */

  /* Get next td data */ 
  /* Code2 to store td data 2 */

  /* Get the next td data */ 
  /* Code3 to store td data 3 */
}

我想提取输出并将其存储到具有表名结果的数据库表中的相应列中。

我可以自己编写存储代码。我需要一个代码来检索一行内的连续 td 数据而无需循环。因为存储 td 数据的代码各不相同。

我提到的帖子 -抓取网页

4

2 回答 2

1
// Create DOM from URL or file
$html = file_get_html("http://www.example.org/");

// Find the tr array
$tr_array = $html->find("table#table2 tr");

$td_array = [];
// Find the td array
foreach($tr_array as $tr) {
    array_push($td_array,$tr->find("td"));
}

echo "<table id=\"table1\">";
foreach($tr_array as $tr) {
    echo "<tr>";
    foreach($td_array as $td) {
        echo $td;
    }
    echo "</tr>";
}
echo "</table>";

有关高级主题,请阅读simplehtmldom


在上面的代码中,我将数组对象存储在数组中:

<?php

$a = [];
$a1 = [1,2,3];
$a2 = [4,5,6];
array_push($a,$a1,$a2);
foreach($a as $a_e) {
  foreach($a_e as $e) {
    echo $e;
  }
  echo "<br>";
}

?>

输出:

123
456

于 2013-08-26T13:18:22.677 回答
0

获取特定表中的所有 td

//get into specific table. table number is from 0,1,2,3.. in your whole html returned
$table = $html->find('table', tableNumber);
$td = $html->find('td');
foreach($td as $tds)
{
  echo $tds;
}
于 2013-08-26T13:26:07.420 回答