Как то надо было доставать котировки валют с внешнего сайта. Использовал CURL для получения контента и простой xml_parser_create для парсинга информации.
$res = '';
function startElement($parser, $name, $attrs) {
global $res;
switch ($name) {
case 'VALCURS':
$d = mb_convert_encoding(urldecode($attrs['DATE']),'UTF-8', 'windows-1251');
//$dd = $d[0].$d[1].$d[2].$d[3].$d[4];
//$res .= 'Дата: '.$dd.'';
break;
}
}
function endElement($parser, $name) {}
function contents($parser, $data) {
global $res;
$data = mb_convert_encoding($data,'windows-1251','UTF-8');
//$res .= trim($data)."";
}
$ch = curl_init();
//$date = date("d/m/Y");
//$url = "http://www.cbr.ru/scripts/XML_daily.asp?///date_req=".$date;
$url = "http://www.cbr.ru/scripts/XML_daily.asp";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_PROXYPORT, 0);
curl_setopt($ch, CURLOPT_PROXY, '');
$data = curl_exec($ch);
curl_close($ch);
$XMLparser = xml_parser_create();
xml_set_element_handler($XMLparser, 'startElement', 'endElement');
xml_set_character_data_handler($XMLparser, 'contents');
$xml_array = file($url);
$res .= "".$xml_array[67].": ".$xml_array[70]."";
$res .= "".$xml_array[74].": ".$xml_array[77]."";
print $res;
if (!xml_parse($XMLparser, $data)) {
die('Ошибка обработки данных');
}
xml_parser_free($XMLparser);
?>
Интересная инфа тут: http://parsing-and-i.blogspot.com