PHP - 简单的HTML DOM解析器 - 当html正常时获取致命错误

时间:2016-03-09 14:34:12

标签: php html dom

我正在尝试解析表并在另一个表中输出明文。我已经走到了这一步:

<?php 
    if (url_exists($url))
    {
        $html = file_get_html($url);
    }
    else 
    {
        echo "URL doesn't exist.";
    }

    if ($html && is_object($html) && isset($html->nodes))
    {
        // Everything checks out
        $table = $html->find('table[border]');
        if (!empty($table))
        {
        $row = $table->find('tr');
        }
    }
    else 
    {
        echo "Fetched page is not ok.";
    }
?>

这会返回错误: 致命错误:Call to a member function find() on a non-object in /var/www/html/jsudimak/mailman/webdev-test1.php on line 78

第78行就是这一行:$row = $table->find('tr');

这意味着:

  • html有效
  • 我要解析的表也是有效的

因此,我对find()方法仍然返回此错误感到困惑。

过去几天我已经广泛研究了这个错误的原因,我还没有找到解决方案。我也尝试了一些其他解析工具,但仍然没有运气。帮帮我这个调试员!!!!

顺便说一下,我使用Simple HTML Dom Parser来解析表。

1 个答案:

答案 0 :(得分:2)

使用$table = $html->find('table[border]')[0];

文档说明,除非你在函数find()中指定索引,否则它将返回一个数组