我正在使用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,我总能成功获得数据。
答案 0 :(得分:0)
我发现了什么问题。
每次调用file_get_html或str_get_html时,Simple HTML DOM Parser都不会清理DOM中的内存,因此每次完成当前DOM时都需要明确表达。
所以我添加了$ html-> clear();在循环结束时。