使用php simple_html_dom.php解析html时出错

时间:2013-02-20 13:02:46

标签: php html parsing simple-html-dom

我是php simple_html_dom.php的新手 我正在尝试解析一个小的html页面。但是我收到了一个错误 Fatal error: Call to a member function find() on a non-object in C:\xampp\htdocs\result\do.php on line 8

我的PHP代码在这里:
`

$html = new simple_html_dom();
$html->load_file('C:\xampp\htdocs\result\www.html');
$tableData = array();
$table = $html->find('table');      
foreach($table->find('tr') as $row) {
    $rowData = array();
    foreach($row->find('td.text') as $cell) {
        $rowData[] = $cell->innertext;
    }       
    $tableData[] = $rowData;
}
echo "Result :<br/>";
foreach($tableData as $test)
    echo "-".$test[0]."-".$test[1]."-".$test[2]."-".$test[3]."-".$test[4]."<br/>";

&GT;`
我的html页面在这里(www.html):

<table>
<tr>
    <td width=250>Subject</td>
    <td width=60 align=center>External </td>
    <td width=60 align=center>Internal</td>
    <td align=center width=60>Total</td>
    <td align=center width=60>Result</td>
</tr>
<tr>
    <td width=250><i>Analog Communication (06EC53)</i></td>
    <td width=60 align=center>0</td>
    <td width=60 align=center>17</td>
    <td width=60 align=center>17</td>
    <td width=60 align=center><b>A</b>
</td>

我想知道为什么我会收到此错误,如何解决此错误。

2 个答案:

答案 0 :(得分:0)

你试过在那附近添加html和body标签吗?我相信图书馆需要它。

应为<html><body> .... </body></html>

答案 1 :(得分:0)

该错误意味着您尝试在空的内容上调用find(),可能是因为某些内容是另一次调用find()但实际上没有找到任何内容的结果。这里可能的罪魁祸首是$table,因为在继续尝试使用结果之前,你从未费心检查$html->find('table')是否实际成功。