Valuta árfolyamok
Puskás Norbert
lista at procinet.com
2009. Sze. 10., Cs, 10:23:38 CEST
Szia!
Csak gyors copy egy működő dolgomból. Remélem segít.
Bocs a csatolmányért, de itt oda a sortörés.
function arfolyam()
{
$bdy = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$bdy.= "<soap:Envelope
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema?\"
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$bdy.= "<soap:Body>";
$bdy.= "<GetCurrentExchangeRates
xmlns=\"http://www.mnb.hu/webservices/\" />";
$bdy.= "</soap:Body>";
$bdy.= "</soap:Envelope>\r\n";
$req = "POST /arfolyamok.asmx HTTP/1.1\r\n";
$req.= "Host: www.mnb.hu\r\n";
$req.= "Connection: Close\r\n";
$req.= "Content-Type: text/xml; charset=utf-8\r\n";
$req.= "Content-Length: ".strlen($bdy)."\r\n";
$req.= "SOAPAction:
\"http://www.mnb.hu/webservices/GetCurrentExchangeRates\"\r\n\r\n";
$fs = fsockopen("www.mnb.hu", 80);
fwrite($fs, $req.$bdy);
//fwrite($fs);
//$s = fgets($fs);
while (!feof($fs))
{
$s = fgets($fs);
$szoveg="$s";
}
fclose($fs);
$szoveg=str_replace("<soap:Envelope
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body><GetCurrentExchangeRatesResponse
xmlns=\"http://www.mnb.hu/webservices/\"><GetCurrentExchangeRatesResult>",
"", $szoveg);
$szoveg=str_replace("</GetCurrentExchangeRatesResult></GetCurrentExchangeRatesResponse></soap:Body></soap:Envelope>",
"", $szoveg);
$szoveg=html_entity_decode($szoveg);
$xml2 = new SimpleXMLElement($szoveg);
foreach ($xml2->Day[0]->Rate as $rating) {
switch((string) $rating['curr']) { // Attribútum megszerzése az elem
tömbindexeként.
case 'UAH':
$ertek['UAH']=str_replace(",", ".", $rating);
break;
case 'EUR':
$ertek['EUR']=str_replace(",", ".", $rating);
break;
case 'GBP':
$ertek['GBP']=str_replace(",", ".", $rating);
break;
case 'SEK':
$ertek['SEK']=str_replace(",", ".", $rating);
break;
case 'USD':
$ertek['USD']=str_replace(",", ".", $rating);
break;
case 'RON':
$ertek['RON']=str_replace(",", ".", $rating);
break;
}
}
$ertek['nap']=$xml2->Day["date"];
return $ertek;
}
Norbi
Zsolt Nagy írta:
> Sziasztok!
>
> Tudna nekem valaki segíteni, hogyan lehet euró és magyar forint
> árfolyamokat megjeleníteni egy honlapon? (olyan megoldás érdekelne ami
> frissíti mindig magát -> a MNB lapról szedné az adatokat )
>
> Köszi előre is mindenkinek!
>
> Üdv:
> NZS
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Techinfo mailing list
> Techinfo at lista.sulinet.hu
> Fel- és leiratkozás: http://lista.sulinet.hu/mailman/listinfo/techinfo
> Illemtan: http://www.1let.hu/illemtan.html
> Ügyfélszolgálat FAQ: http://www.kozhalo2.hu/Faq.aspx
--------- következő rész ---------
<?php
function arfolyam()
{
$bdy = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$bdy.= "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema?\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$bdy.= "<soap:Body>";
$bdy.= "<GetCurrentExchangeRates xmlns=\"http://www.mnb.hu/webservices/\" />";
$bdy.= "</soap:Body>";
$bdy.= "</soap:Envelope>\r\n";
$req = "POST /arfolyamok.asmx HTTP/1.1\r\n";
$req.= "Host: www.mnb.hu\r\n";
$req.= "Connection: Close\r\n";
$req.= "Content-Type: text/xml; charset=utf-8\r\n";
$req.= "Content-Length: ".strlen($bdy)."\r\n";
$req.= "SOAPAction: \"http://www.mnb.hu/webservices/GetCurrentExchangeRates\"\r\n\r\n";
$fs = fsockopen("www.mnb.hu", 80);
fwrite($fs, $req.$bdy);
//fwrite($fs);
//$s = fgets($fs);
while (!feof($fs))
{
$s = fgets($fs);
$szoveg="$s";
}
fclose($fs);
$szoveg=str_replace("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body><GetCurrentExchangeRatesResponse xmlns=\"http://www.mnb.hu/webservices/\"><GetCurrentExchangeRatesResult>", "", $szoveg);
$szoveg=str_replace("</GetCurrentExchangeRatesResult></GetCurrentExchangeRatesResponse></soap:Body></soap:Envelope>", "", $szoveg);
$szoveg=html_entity_decode($szoveg);
$xml2 = new SimpleXMLElement($szoveg);
foreach ($xml2->Day[0]->Rate as $rating) {
switch((string) $rating['curr']) { // Attribútum megszerzése az elem tömbindexeként.
case 'UAH':
$ertek['UAH']=str_replace(",", ".", $rating);
break;
case 'EUR':
$ertek['EUR']=str_replace(",", ".", $rating);
break;
case 'GBP':
$ertek['GBP']=str_replace(",", ".", $rating);
break;
case 'SEK':
$ertek['SEK']=str_replace(",", ".", $rating);
break;
case 'USD':
$ertek['USD']=str_replace(",", ".", $rating);
break;
case 'RON':
$ertek['RON']=str_replace(",", ".", $rating);
break;
}
}
$ertek['nap']=$xml2->Day["date"];
return $ertek;
}
?>
További információk a(z) Techinfo levelezőlistáról