0

我是 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/>";

?>`
我的 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>

我想知道为什么会出现此错误以及如何解决此错误。

4

2 回答 2

0

您是否尝试过添加 html 和 body 标签?我相信图书馆需要它。

它应该是<html><body> .... </body></html>

于 2013-02-20T13:07:13.567 回答
0

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

于 2013-03-09T20:15:27.393 回答