Ta en tit på min side med dagens valuta frå ECB;
http://home.no.net/laroald/currency2.phpFilen erates.xml bør du legge i samme mappe og åpne for skriving til og fra.
Filen erates.xml er vedlagt helt til slutt.
Her er scriptet:
<html>
<head>
<title>The European Central Bank - Current Exchange Rate </title>
</head>
<body>
<h2><CENTER>Siste valutakurser på kinesisk Yuan og US$</CENTER></h2>
Her har Roald Trading henta dei siste kursene frå The European Central Bank; <a href="
http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html">ECB</a>. Desse kursene vert oppdatert dagleg kl 14.15, norsk tid.<br><br>
<?php
#Kilde-kode:
http://ireland.wellho.net/solutions/php-using-current-exchange-rates-on-a-web-page.html?setfontgroup=3$now = time();
$cache = "erates.xml";
$exchrate[EUR] = 1.00;
$amount = 100;
if (($interval = $now - filemtime($cache)) > 3600 * 2) {
$stuff = file("
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml");
$trace = "Cache REFRESHED after $interval seconds";
$fh = fopen($cache,"w");
foreach ($stuff as $line) {
fputs($fh,$line);
}
} else {
$stuff = file($cache);
$trace = "Cached information reused aged $interval seconds";
}
$names = array (USD => "US Dollar",
JPY => "Japanske Yen",
DKK => "Danske Kroner",
GBP => "Pund Sterling",
SEK => "Svenske Kroner",
CHF => "Sveitske Franch",
ISK => "Islandske kroner",
NOK => "Norske kroner",
BGN => "Bulgarske Lev",
CYP => "Kypriske Pund",
CZK => "Tsjekkiske Koruna",
EEK => "Estiske Kroon",
HUF => "Ungarske Forint",
LTL => "Lhitauiske Litas",
LVL => "Latviske Lats",
MTL => "Maltiske Lira",
PLN => "Polske Zloty",
ROL => "Romanske Leu",
SIT => "Slovenske Tolar",
SKK => "Slovakiske Koruna",
TRL => "Gamal Tyrkiske Lira",
#TRY => "New Turkish Lira",
AUD => "Australske Dollar",
CAD => "Kanadiske Dollar",
HKD => "Hong Kong Dollar",
NZD => "New Zealand Dollar",
SGD => "Singapore Dollar",
KRW => "Sør Koreanske Won",
EUR => "Euro",
CNY => "Kinesiske Yuan",
ZAR => "Sør Afrikanske Rand");
$mnd = array ("01" => " januar ",
"02" => " februar ",
"03" => " mars ",
"04" => " april ",
"05" => " mai ",
"06" => " juni ",
"07" => " juli",
"08" => " august ",
"09" => " september ",
"10" => " oktober ",
"11" => " november ",
"12" => " desember");
$kortdato = array ("00" => 0,
"01" => 1,
"02" => 2,
"03" => 3,
"04" => 4,
"05" => 5,
"06" => 6,
"07" => 7,
"08" => 8,
"09" => 9);
$dag = array ("0" => " søndag ",
"1" => " mandag ",
"2" => " tirsdag ",
"3" => " onsdag ",
"4" => " torsdag ",
"5" => " fredag ",
"6" => " laurdag ");
# Extract data from page - conversion rates between each currency and the Euro
foreach ($stuff as $line) {
ereg("currency='([[:alpha:]]+)'",$line,$gota);
if (ereg("rate='([[:graph:]]+)'",$line,$gotb)) { $exchrate[$gota[1]] = $gotb[1]; } }
$today = date("j");
$day = date("w"); #søndag er dag nr null;0
#$day = 6;
foreach ($stuff as $line) {
ereg("time='([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})'", $line,$regs);
#løkke for å fjerne null for dato 1.-9.
if ($regs[3] < 10) { $dato = "{$kortdato[$regs[3]]}. {$mnd[$regs[2]]} $regs[1]"; }
else {$dato = "$regs[3]. {$mnd[$regs[2]]} $regs[1]"; }
if ($today==$regs[3]) { $samme = "for i dag "; $ukedag=($dag[$day]); }
# med 1 dags diff:
elseif (($today==($regs[3]+1)) && $day > 0) { $samme= "frå i går"; $ukedag=($dag[$day-1]);}
elseif (($today==($regs[3]+1)) && $day== 0) { $samme= "frå i går"; $ukedag=($dag[6]);} # kun sødager
# med 2 dagers diff:
elseif (($today==($regs[3]+2)) && $day== 0) { $samme= "frå i forgårs"; $ukedag=($dag[5]);} # kun sødager
elseif (($today==($regs[3]+2)) && $day== 1) { $samme= "frå før helga"; $ukedag=($dag[6]);} # gjeld kun mandager - kurser frå laurdag
elseif (($today==($regs[3]+2)) && $day > 1) { $samme= "frå i forgårs"; $ukedag=($dag[$day-2]);} # tirsdag til laurdag
# med 3 dagers diff:
elseif (($today==($regs[3]+3)) && $day== 1) { $samme= "frå før helga"; $ukedag=($dag[5]);} # gjeld kun mandager - kurser frå fredag
# ellers dropper eg teksten "idag, igår i forgårs..."
else {$samme="for "; $ukedag=($dag[$day]); } }
# Sample output - a table showing an amount converted to Euros, Pounds and Dollars
#$today = date("j");
print ("<center><b>Verdi på kinesisk Yuan, Euro og US Dollar<br>Kurser $samme, $ukedag $dato:<br><br></b></center>");
?>
<center><table cellpadding=5 BORDERCOLOR="#2323B6" ALIGN="CENTER" BGCOLOR="#B6B6F1"><tr><td></td><th>N.kr</th><th>Kin.Yuan</th><th>Euro</th><th>USD</th></tr></b>
<?php
$maal = array("NOK","CNY","EUR","USD");
#Bevarer xxx i staden for navne-defineringa over!
foreach ($maal as $to) { if ($names[$to] == "") $names[$to] = $to; #Bevarer xxx i staden for navne-defineringa over!
print ("<tr><td>$amount $names[$to] tilsvarer </td>");
foreach (array("NOK","CNY","EUR","USD") as $from) {
$convertsto = sprintf("%.2f",$amount * $exchrate[$from] / $exchrate[$to]);
if (($to == "CNY")&&($from == "NOK"))
{ $dagens=$convertsto;
$convertsto = str_replace('.',',',$convertsto); #erstatt med komma
print ("<td align=right><b>$convertsto</b></td>");
}
else{ $convertsto = str_replace('.',',',$convertsto); #erstatt med komma
#neste 7 setningane har eg laga for å erstatte 100,00 med ------:
switch ($convertsto) {
case 0:
break;
case 100:
$convertsto = "--------";
break;}
print ("<td align=right>$convertsto</td>");
} #slutt på 'else'
}
print ("<tr>"); }
print ("</tr></TBODY></TABLE></CENTER><P align=left><br><br>");
$dagensAvrunda = str_replace('.',',',$dagens); #erstatt med komma kun for utskrift i neste bolk -bevarer $dagens for vidare kalkul. lenger nede
?>
....pprinnelig kurs fastsatt i avtalen, prosentvis endring som har skjedd sidan då og
eventuelle endringer som er avtalt og iverksatt. <br><br>Eks: <br>Dersom kursen på 100 kinesiske Yuan ved
inngåelse av avtale var på kr 80,00 <br>ville kursen <?php print ("$samme "); ?>på kr <?php print ("$dagensAvrunda "); ?> ha tilsvara
<?php
if ($dagens > 80) {
echo "ein kursoppgang ";
} else {
echo "ein kursnedgang ";
}
$endring = (($dagens - 80)*100 /$dagens);
$avrunda=round($endring,1);
$avrunda = str_replace('.',',',$avrunda); #erstatt med komma
print ("på $avrunda %.");
?> <br>Altso
<?php
if ($dagens > 80) {
echo "ei <b>verdiauke</b> ";
} else {
echo "ein <b>nedgang</b> i verdi ";}
$cache2 = "erates2.xml";
$stuff = file($cache2);
$trace = "Cached information reused aged $interval seconds";
$fh = fopen($cache2,"w");
fputs($fh,$dato); #skriver inn (frå venstre kant): 6. juni 2006
#So dagens dato inn på tampen av 1. kobling nedanfor - som ikkje var nødv. Dropp dei siste tre ledda i denne kobl:
#kopi av kobl:
http://fx.sauder.ubc.ca/cgi/fxplot?b=NOK&c=CNY&rd=%2A&fd=17&fm=4&fy=2006&y=daily&q=volume&f=png&a=lin&m=0&x=indx&ld=08&lm=06&ly=2006#$ld=date("\&\l\d\= j\&\l\m\=n\&\l\y\=Y")
?>
på yuan i forhold til norske kroner.
<br><br>Det er denne endringa som løpande vil bli lagt til grunn for eventuell priskorrigering.</P>
<a href="#" onClick="Graf=window.open('
http://fx.sauder.ubc.ca/cgi/fxplot?b=NOK&c=CNY&rd=%2A&fd=17&fm=4&fy=2006&y=daily&q=volume&f=png&a=lin&m=0&x=indx','Graf','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=680,height=620,left=100,top=50'); return false;"> University of British Columbia</a>
i Canada har ein informativ graf som viser relativ endring frå dato for inngåelse av avtale.
Om det f.eks. hadde vore mandag 17. april 2006 so ville sluttkursen den dagen på kr 80,00 ha vore utgangspunktet med ein indeks på 100.
Verdier på over 105 eller under 95 tilsvarer at kinesisk Yuan har hatt ei endring på meir enn 5%.
Tilsvarande kan ein sjå langs tidsaksen (x) om ei so stor endring av verdi har vart i meir enn 21 dagar.<br><br>
Dei har og <a href="#" onClick="Graf2=window.open('
http://fx.sauder.ubc.ca/cgi/fxplot?b=CNY&c=NOK&rd=91&fd=1&fm=1&fy=2005&ld=31&lm=12&ly=2006&y=daily&q=volume&f=png&a=lin&m=0&x=','Graf2','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=680,height=620,left=180,top=70'); return false;">ein annan graf</a>
med utviklinga i ordinær kurs dei tre siste månadane.<br><br>
<br><br>
</body>
</HTML>
****************************
Og her er filen erates.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!--eller utelate heile encoding-delen=>behandla som UTF-8 , windows-1252 el. alternativet ISO-8859-1 -->
<gesmes:Envelope xmlns:gesmes="
http://www.gesmes.org/xml/2002-08-01" xmlns="
http://www.ecb.int/vocabulary/2002-08-01/eurofxref"> <gesmes:subject>Reference rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time='2006-05-25'>
<Cube currency='USD' rate='1.2755'/>
<Cube currency='JPY' rate='143.08'/>
<Cube currency='CYP' rate='0.5750'/>
<Cube currency='CZK' rate='28.228'/>
<Cube currency='DKK' rate='7.4578'/>
<Cube currency='EEK' rate='15.6466'/>
<Cube currency='GBP' rate='0.68315'/>
<Cube currency='HUF' rate='262.45'/>
<Cube currency='LTL' rate='3.4528'/>
<Cube currency='LVL' rate='0.6960'/>
<Cube currency='MTL' rate='0.4293'/>
<Cube currency='PLN' rate='3.9523'/>
<Cube currency='SEK' rate='9.3156'/>
<Cube currency='SIT' rate='239.63'/>
<Cube currency='SKK' rate='37.900'/>
<Cube currency='CHF' rate='1.5558'/>
<Cube currency='ISK' rate='93.07'/>
<Cube currency='NOK' rate='7.8160'/>
<Cube currency='BGN' rate='1.9558'/>
<Cube currency='HRK' rate='7.2670'/>
<Cube currency='RON' rate='3.5408'/>
<Cube currency='RUB' rate='34.5140'/>
<Cube currency='TRY' rate='1.9770'/>
<Cube currency='AUD' rate='1.6862'/>
<Cube currency='CAD' rate='1.4235'/>
<Cube currency='CNY' rate='10.2382'/>
<Cube currency='HKD' rate='9.8926'/>
<Cube currency='IDR' rate='11957.81'/>
<Cube currency='KRW' rate='1210.64'/>
<Cube currency='MYR' rate='4.6522'/>
<Cube currency='NZD' rate='1.9929'/>
<Cube currency='PHP' rate='67.570'/>
<Cube currency='SGD' rate='2.0177'/>
<Cube currency='THB' rate='48.907'/>
<Cube currency='ZAR' rate='8.4224'/>
</Cube>
</Cube>
</gesmes:Envelope>
*********************************'
lykke til!