0

htmlパーサーを使用してhtmlをスクレイプし、DBに挿入できるようにフォーマットしています。

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 に答える