2017-01-04 3 views
2

Я нашел эту тему: How to parse this table and extract data from it? Какой, вероятно, ответ на мою проблему, я хочу, чтобы то же самое - разобрать внешнюю таблицу, извлечь данные и распечатать эти данные на моей веб-странице. @Yoshi дает идеальный ответ, но когда я пытаюсь использовать этот код, я получаю пустой массивParse HTML table and extract data

Array()

Я не знаю, почему это не работает? Я пытаюсь использовать тот же самый пример

<?php 
$dom = new DomDocument; 
$dom->loadHtmlFile('http://www.nbs.rs/kursnaListaModul/srednjiKurs.faces?lang=lat'); 

$xpath = new DomXPath($dom); 

// collect header names 
$headerNames = array(); 
foreach ($xpath->query('//table[@id="index:srednjiKursLista"]//th') as $node) { 
    $headerNames[] = $node->nodeValue; 
} 

// collect data 
$data = array(); 
foreach ($xpath->query('//tbody[@id="index:srednjiKursLista:tbody_element"]/tr') as $node) { 
    $rowData = array(); 
    foreach ($xpath->query('td', $node) as $cell) { 
     $rowData[] = $cell->nodeValue; 
    } 

    $data[] = array_combine($headerNames, $rowData); 
} 

print_r($data); 
?> 
+0

Вы проверили журналы ошибок вашего сервера? Добавьте отчет об ошибках в начало файла (ов) сразу после открытия '

+0

У меня нет ошибок в журнале сервера Этот тег не дает мне никаких ошибок – Dawid

ответ

1

страница изменилась, поэтому код не работает, это работает:

include('simple_html_dom.php'); 
$dom = new DomDocument; 
$dom->loadHtmlFile('http://www.nbs.rs/kursnaListaModul/srednjiKurs.faces?lang=lat'); 

$xpath = new DomXPath($dom); 

// collect header names 
$headerNames = array(); 
foreach ($xpath->query('//table[@id="index:srednjiKursLista"]//th') as $node) { 
    $headerNames[] = $node->nodeValue; 
} 

// collect data 
$data = array(); 
foreach ($xpath->query('//tbody[@id="index:srednjiKursList:tbody_element"]/tr') as $node) { 
    $rowData = array(); 
    foreach ($xpath->query('td', $node) as $cell) { 
     $rowData[] = $cell->nodeValue; 
    } 

    $data[] = array_combine($headerNames, $rowData); 
} 
echo "<pre>"; 
print_r($data); 
echo "</pre>"; 

Теперь, я полагаю, что вы хотите, чтобы извлечь значение Srednji kurš для в некоторых валютах, и вы собираетесь это сделать

echo $data[15]['SREDNJI KURS']; 

Это собирается извлечь из США.