[英]Error/bug PHP SIMPLE HTML DOM PARSER
这是我的桌子:
<table class="datatable"><thead></thead><thead>
<th scope="col"><font><font>Position</font></font></th>
<th scope="col">Group</th>
<th scope="col">Drivers</th>
<th scope="col">Time</th>
<th scope="col"><font><font>Points</font></font></th>
</tr></thead>
<tbody><tr><td><font><font>1°</font></font></td><td><font><font>GROUP</font></font></td><td><a href=“#”>AA, </a><a href="#">BB, </a><a href="#">CC, </a><a href="http://#">DD</a></td><td><font><font>00’11’’22</font></font></td><td><center><font><font>1111</font></font></center></td></tr><tr><td class="alt"><font><font>2°</font></font></td><td class=“alt”><font><font>GROUP</font></font></td><td><a href=“#”>AA, </a><a href="#">BB, </a><a href="#">CC, </a><a href="http://#">DD</a></td><td class="alt"><font><font>00’11’’22</font></font></td><td class="alt"><center><font><font>1111</font></font></center></td></tr><tr><td><font><font>3°</font></font></td><td><font><font>GROUP</font></font></td><td><a href=“#”>AA, </a><a href="#">BB, </a><a href="#">CC, </a><a href="http://#">DD</a></td><td><font><font>00’11’’22</font></font></td><td><center><font><font>1111</font></font></center></td></tr></tbody></table>
我无法获得位置,时间和点的全部信息,我使用了PHP SIMPLE DOM PARSER,但是问题是当我为tr做foreach时,他重复了很多次结果,却没有得到单行,请尝试代码:
$html = file_get_html($url);
$e = $html->find('table');
$str = str_get_html($e);
foreach($str->find('tr') as $key=>$g){
if($key == 0)
continue;
echo $g;
}
$html->clear();
unset($html);
我的代码是这样尝试。
试试这个,它将为您提供一个包含关联数组中每一行的数组
<?php
include('simple_html_dom.php');
$html = file_get_html('table-3.html');
$data = array();
foreach($html->find('table tr') as $row) {
$dataRow = array();
$dataRow['position'] = $row->find('td',0)->plaintext;
$dataRow['group'] = $row->find('td',1)->plaintext;
$dataRow['drivers'] = $row->find('td',2)->plaintext;
$dataRow['time'] = $row->find('td',3)->plaintext;
$dataRow['points'] = $row->find('td',4)->plaintext;
$data[] = $dataRow;
}
print_r($data);
$html->clear();
unset($html);
如果在我的情况下有一个不好的html来解析,只需解决以下问题即可:
strip_tags(
函数,用于清除html标记错误或无用,并感谢我清理了代码,以便最终解析没有问题。
在清理之前,我只是用
$str->save('result.htm');
由于这一点,我发现了问题并使用strip_tags进行了修复!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.