我正在使用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(),反之亦然。但是,事实并非如此。我还认为缓冲区可能有效,但我不太了解它们是如何工作的。
答案 0 :(得分:3)
不要再这样做了 -
require('simple_html_dom.php');
在sportsPic()
函数中。
更新 - 您的函数定义function sportsPic()
不带参数。但看看这一行 -
sportPics($e, $league);
重新定义你的函数以获取参数。
您正在传递参数,但函数无法访问它们,因为它不带参数。因此,您的$e
是非对象。
答案 1 :(得分:0)
把它放在一边的sportsPic()函数
require('simple_html_dom.php');
你再次打电话给这个&再次在一个循环中。
答案 2 :(得分:0)
foreach($html->find('.logoWall li') as $e){
foreach($e->find('a') as $a){
// Execute code
}
}