我有一个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 */
}
我想提取输出并将其存储到具有相应列中的表名结果的DB表中。
我可以自己编写存储代码。 我需要一个代码来检索一行中没有循环的连续td数据。因为存储td数据的代码会有所不同。
我提到的帖子 - scraping webpage。
答案 0 :(得分: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
答案 1 :(得分: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;
}