Парсер текущих курсов валют национального банка Украины

Парсер на PHP текущих курсов валют национального банка Украины. Запрашивает и парсит веб-страницу с курсами валют устанавливаемыми ежедневно. Форматы отдаваемых данных и дополнительные функции найдете здесь http://shaman.asiadata.ru/script/currency

function currency_nbu_get_rates() {
  function currency_nbu_html_parse($html) {
    $result = array();
    $tables = preg_split('/<table[^>]*>/i', $html);
    $table = isSet ($tables[6]) ? $tables[6] : "";
    $trs = preg_split('/<tr[^>]*>/i', $table);
    unset($trs[0], $trs[1]);
    $lines = array();
    foreach($trs as $i=>$l) {
      $l = preg_replace('/<\/tr>.*/i', '', $l);
      $c = preg_split('/<td[^>]*>/i', $l);
      $lines[] = currency_clear_array($c);
    }
    $dtable = isSet ($tables[5]) ? $tables[5] : "";
    $date = preg_match('/([0-9][0-9]).([0-9][0-9]).([0-9][0-9][0-9][0-9])/i', $dtable, $regs) ? $regs[3] . $regs[2] . $regs[1] : date('Ymd');
    foreach ($lines as $line) {
      if ($line[1] && $line[2] && $line[4]) {
        $result[] = curency_prepare_rate(array(
           'country'=>'UA',
           'bank'=>'NBU',
           'fromvalue'=>$line[2],
           'fromcurrency'=>$line[1],
           'tovalue'=>doubleval($line[4]),
           'tocurrency'=>'UAH',
           'date'=>$date,
         ));
       }
    }
    return $result;
  }
  $d_url = 'http://bank.gov.ua/control/en/curmetal/detail/currency?period=daily';
  $m_url = 'http://bank.gov.ua/control/en/curmetal/detail/currency?period=monthly';
  $result = array();
  if (($datafetch = currency_http_request($d_url)) && ($html = $datafetch->data)) {
    $result = currency_nbu_html_parse($html);
  }
  if (($datafetch = currency_http_request($m_url)) && ($html = $datafetch->data)) {
    $result = array_merge($result, currency_nbu_html_parse($html));
  }
  return $result;
}

Сайт национального банка Украины: www.bank.gov.ua
Веб-страница с ежедневными курсами валют: http://bank.gov.ua/control/en/curmetal/detail/currency?period=daily
Веб-страница с ежемесячными курсами валют: http://bank.gov.ua/control/en/curmetal/detail/currency?period=monthly
Количество отдаваемых курсов валют:
октябрь 2011 года – 27
июль 2012 - 56
сегодня – http://currency.servisator.ru/ru/rate/Ukraine

Исправление 3

Полностью переписана функция парсера курсов валют с банка Украины. Изменились адреса страниц и верстка. Появилась страница с курсами валют, обновляемыми ежемесячно. Увеличилось количество валют.