0

我正在使用 html 解析器来抓取 html,然后对其进行格式化,以便可以将其插入数据库。

require_once('simple_html_dom.php');

$url = "http://www.site.com/url/params/"
$html = file_get_html($url);

//  The team links are stored in the div.thumbHolder
foreach($html->find('.logoWall li') as $e)
{
    ob_start();
    sportPics($e, $league);
}

sportsPics() 函数是这样的:

function sportsPic()
{
    require('simple_html_dom.php');

    foreach($e->find('a') as $a)
    {
//               Execute code                       
    }
}

我得到一个错误阅读:

Fatal error: Cannot redeclare file_get_html() 

我认为将 require() 更改为 require_once() ,反之亦然。但是,它没有。我还认为缓冲区可能会起作用,但我不太了解它们是如何工作的。

4

3 回答 3

3

不要再这样做了——

 require('simple_html_dom.php');

sportsPic()功能上。

更新- 您的函数定义function sportsPic()不带任何参数。但是看看这条线——

sportPics($e, $league);

重新定义你的函数来接受参数。

您正在传递参数,但该函数无法访问它们,因为它不接受任何参数。因此,你$e是一个非对象。

于 2013-03-04T04:00:54.457 回答
0

把这个侧面的sportsPic()函数

 require('simple_html_dom.php');

你在一个循环中一次又一次地调用它。

于 2013-03-04T04:04:28.797 回答
0
foreach($html->find('.logoWall li') as $e){
    foreach($e->find('a') as $a){
        // Execute code
    }
}
于 2013-03-04T04:06:37.673 回答