почти та же проблема Call to a member function innertext() on null
function getContent($url) {
$html = new simple_html_dom();
$html->load_file($url);
$html->save();
$table = $html->find('table.tb-matches');
foreach ($table as $key => $value) {
foreach ($value->find('tr') as $key => $tr) {
$elem = $tr->find('td', 0);
echo 'key' . $key . '<br>';
echo 'tr' . $tr . '<br>';
echo $tr->find('td', 0)->attr['colspan'] . '----<br>';
}
}
}
foreach ($dateArr as $key => $dateVal) {
getContent($url . $dateVal);
}
пробовал после foreach ($table as $key => $value) { добавлять $value = new simple_html_dom();
ошибка стала появляться сразу, не выполняется даже первая итерация
UPD
решил проблему так: сначала добавляю контент всех страниц в переменную
foreach ($dateArr as $key => $dateVal) {
$out .= file_get_contents($url . $dateVal) ;
}
и потом создаю объект simple_html_dom
$html = new simple_html_dom();
$html->load($out);
$html->save();
$table = $html->find('.list_table');
foreach ($table as $key => $value) {
$dd = $value->attr['date'];
foreach ($value->find('table.tb-matches tr') as $key => $tr) {
$elem = $tr->find('td', 0);
if ($elem->attr['colspan'] != '7') {
$resultArr[$dd][] = array(
'time' => $tr->find('td', 0)->plaintext,
'home_team' => $tr->find('td.home-team', 0)->plaintext,
'away_team' => $tr->find('td.away_team', 0)->plaintext,
'status' => trim($tr->find('td.status', 0)->plaintext),
'score' => $tr->find('td.score', 0)->plaintext,
'href' => 'http://goal24.ru' . $tr->find('td.option a', 0)->href,
);
}
}
}
PS
Нашел еще один вариант решения
в функции которая гоняется в цикле, заменить
$html = new simple_html_dom() на
$html = str_get_html(file_get_contents($url)). Результат на лицо.