我正在尝试从SEPTA列车(Pennsyvania Train)解析火车时刻表。到目前为止,我能够获得正确的表,但是当我尝试循环时 认为表值我总是得到一个空变量,无论我寻找什么:TD / TR / Text。
我要做的是从站名获取:预定时间,预计时间和到达时间。我试着搜索停止名称:'Malvern'并获得计划时间。
这就是我得到主表的方式:
//// Retrieve the DOM from a given URL
$html = file_get_html('http://trainview.septa.org/550');
$table = $html->find('table#scheduletable');
foreach($table as $MainTable)
{
echo $MainTable;
}
?>
好的,现在我有了我的桌子。如果我尝试使用$ table执行任何ForEach,我会得到一个空白页面(可能是一些PHP异常)。
以下是我一直试图做的事情,但没有取得任何成功:
foreach($table->find('td') as $td) {
If($td == "Malvern") } // Found my row?
foreach($table->find('Malvern') as $td) {
}
foreach($table->find('td td') as $td) {
}
// Can I do this to get the TD values?
$table->find('td',0)->innertext // Station
$table->find('td',1)->innertext // Scheduled Time
$table->find('td',2)->innertext // Estimated Time
$table->find('td',3)->innertext // Arrival Time
这是表的格式化方式(HTML):
<table class="taglist" id="scheduletable">
<tbody>
<tr>
<th bgcolor="#c1dcfa" colspan="6"> <h2>
<div style="text-align: center;">Schedule for Train # 550 <br>
May 11, 2015 </div>
</h2></th>
</tr>
<tr valign="top" bgcolor="#aaeeee">
<th width="25%">Station</th>
<th width="5%"> </th>
<th><center>
Scheduled Time
</center></th>
<th><center>
Estimated Time
</center></th>
<th><center>
Arrival Time
</center></th>
</tr>
<tr>
<td>Thorndale</td>
<td></td>
<td>10:10 am</td>
<td></td>
<td>10:13 am</td>
<tr>
<td>Whitford</td>
<td></td>
<td>10:22 am</td>
<td></td>
<td>10:24 am</td>
<tr>
<td>Downingtown</td>
<td></td>
<td>10:17 am</td>
<td></td>
<td>12:00 am</td>
<tr>
<td>Exton</td>
<td></td>
<td>10:24 am</td>
<td></td>
<td>10:26 am</td>
<tr>
<td>Malvern</td>
<td></td>
<td>10:30 am</td>
<td></td>
<td>10:32 am</td>
<tr>
<td>Paoli</td>
<td></td>
<td>10:34 am</td>
<td></td>
<td>10:38 am</td>
</tbody>
</table>
非常感谢任何帮助。
我正在阅读所有HTML解析器主题,我仍然无法弄清楚我的问题是什么:(