如何在foreach循环中创建数组?

时间:2016-02-14 02:32:11

标签: php arrays foreach simple-html-dom

我正在使用PHP HTML DOM Parser从其他站点获取数据。首先,我在这个网站上获得我的交易的URL,而不是我在每个交易网址上发送另一个请求以获得评论。我想做一系列评论,以便我可以在以后对它们进行排序。为什么我不能创建阵列?

看起来像这样

include_once('simple_html_dom.php');
$result = array();
$html = file_get_html('http://csgolounge.com/profile?id='.$steamid);

foreach($html->find('div.tradepoll') as $trade) 
    {
    $tradeid = $trade->find('.tradeheader')[0]->find('a')[0]->href;
    $html = file_get_html('http://csgolounge.com/'.$tradeid);       

        foreach($html->find('div.message') as $message)
        {

        if($message->find('p',0)){}

        else
           {                    
            $left = $message->find('.msgleft')[0];
            $right = $message->find('.msgright')[0];

            //information about comments
            $time = trim(strip_tags_content($left->innertext));
            $text = $left->find('.msgtxt')[0];

            $result[$time]['time'] = $time;
            $result[$time]['text'] = $text;                     
           }

        }

    }

    echo json_encode($result);

如果我回复$ time或$ text,我总能成功获得数据。

1 个答案:

答案 0 :(得分:0)

我发现了什么问题。

每次调用file_get_html或str_get_html时,Simple HTML DOM Parser都不会清理DOM中的内存,因此每次完成当前DOM时都需要明确表达。

所以我添加了$ html-> clear();在循环结束时。

致谢:electrictoolbox.com