我有这个HTML代码。我使用Simple HTML Dom将数据解析为我自己的php脚本。
<table>
<tr>
<td class="header">Name</td>
<td class="header">City</td>
</tr>
<tr>
<td class="text">Greg House</td>
<td class="text">Century City</td>
</tr>
<tr>
<td class="text">Dexter Morgan</td>
<td class="text">Miami</td>
</tr>
</table>
我需要在数组中获取TD内的文本,例如:
$ array [0] = array('Greg House','Century City'); $ array [1] = array('Dexter Morgan','Miami');
我已经尝试了几种方法来实现这一点,但我在每个人和每个人都失败了。有人可以帮我一把吗?
答案 0 :(得分:13)
这应该做:
// get the table. Maybe there's just one, in which case just 'table' will do
$table = $html->find('#theTable');
// initialize empty array to store the data array from each row
$theData = array();
// loop over rows
foreach($table->find('tr') as $row) {
// initialize array to store the cell data from each row
$rowData = array();
foreach($row->find('td.text') as $cell) {
// push the cell's text to the array
$rowData[] = $cell->innertext;
}
// push the row's data array to the 'big' array
$theData[] = $rowData;
}
print_r($theData);
答案 1 :(得分:3)
它会工作..试试这个
include('simple_html_dom.php');
$html = file_get_html('mytable.html');
foreach($html->find('table tr td') as $e){
$arr[] = trim($e->innertext);
}
print_r($arr);
您也可以从任何html标签获取数据,甚至属性......
答案 2 :(得分:1)
@lucia nie
你应该这样做:
// initialize empty array to store the data array from each row
$theData = array();
// loop over rows
foreach($html->find('#theTable tr') as $row) {
// initialize array to store the cell data from each row
$rowData = array();
foreach($row->find('td.text') as $cell) {
// push the cell's text to the array
$rowData[] = $cell->innertext;
}
// push the row's data array to the 'big' array
$theData[] = $rowData;
}
print_r($theData);