public function parse() { libxml_use_internal_errors(true); // // $opts = array( // 'http'=>array( // 'charset'=>"utf-8", // ) // ); // $context = stream_context_create($opts); $html = file_get_contents(DownloadUrlCreator::rbc($this->currencyType)); $dom = new DOMDocument(); $dom->loadHTML('<?xml encoding="UTF-8">' . $html); $table = $dom->getElementById('tableBody'); $row = $table->getElementsByTagName('tr'); foreach ($row as $currentRow) { $columns = $currentRow->getElementsByTagName('td'); $bank = array(); $bankId = 0; foreach ($columns as $column) { $class = $column->getAttribute('class'); $bank[$class] = $column->nodeValue; switch ($class) { case 'name': $href = $column->getElementsByTagName('a')->item(0)->getAttribute('href'); $bankId = preg_replace("/[^0-9]/", '', $href); if (!in_array($bankId, $this->banksId)) { $this->banksId[] = $bankId; } break; case 'info': $bank['info'] = array(); $span = $column->getElementsByTagName('span'); foreach ($span as $info) { $bank['info'][$info->getAttribute('id')] = $info->nodeValue; } default: break; } } $this->banks[$bankId][$bank['sum']] = $bank; } }