簡體   English   中英

錯誤/錯誤PHP SIMPLE HTML DOM PARSER

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM