[code]
<?php
// geef alle waarschuwingen en fouten weer
ini_set('display_errors', 1);
error_reporting(E_ALL);
// maak een array met de namen van de valuta en de bijbehorende waarde.
$valuta = array('Euro' => 1,'Gulden' => 2.20371,'Deense Kroon' => 7.45, 'Amerikaanse Dollar' => 1.36, 'Engelse Pond' => 0.68,'Japanse Yen' => 163.32);
//controleer op posten
if($_SERVER['REQUEST_METHOD'] == 'POST'){
	$van=$_POST['from'];
	$naar=$_POST['to'];
	// rond de eventueel ingevulde waarde met cijfers achter de , of . af naar 2 getallen achter de komma.
	$waarde=str_replace(',','.',$_POST['value']);
	$waarde=round($waarde,2);
	
	//wanneer je van een valuta naar dezelfde valuta wil gaan omrekenen
	if($van == $naar){
		$reactie = 'Grappig hoor dat je probeert van '.$van.' naar '.$naar.' te rekenen, dat is hetzelfde!';
		}
	else{
		// als de 
		if($valuta[$van] == $valuta[$naar]){
			$reactie = $van.' heeft dezelfde waarde als '.$naar.'. Dat betekent dat de omgerekende waarde '.$waarde.' is.';
			}
		else{
			// toon de uitkomst van het omrekenen
			$reactie = $waarde .' '. $van.' omgerekend in '.$naar.' is '.round(($valuta[$naar]/$valuta[$van])*$waarde,2).'.';
			}
		}
	}
else{
	$waarde=1;
	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
label{
	cursor:pointer;
	}
label.aligntext{
	float: left;
	width: 100px;
	text-align: left;
	padding-right: 3px;
	line-height:22px;
	}

</style>
<title>Valuta calculator - by Robert Deiman</title>
</head>
<body>
<form name="database" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
		<fieldset><legend>Bereken de waarde (je kan komma getallen invullen door een . of , te gebruiken bij de invoer):</legend>
		<label for="from" class="aligntext">Valuta van:</label>
        <select id="from" name="from">
        <?php
		// genereer de keuzelijst
		foreach($valuta as $land => $waarde_tov_euro){
			if($_SERVER['REQUEST_METHOD']=="POST" || $_SERVER['REQUEST_METHOD'] == 'post'){
				if(isset($_POST['from']) && $_POST['from'] == $land){
					// zorg ervoor dat je gekozen waarde onthouden blijft
					$selectedfrom= 'selected="selected"';
					}
				else{
					$selectedfrom = '';
					}
				}
			else{
				$selectedfrom= '';
				}
			echo '<option value="'.$land.'" '.$selectedfrom.'>'.$land.'</option>';
			}
		?>
        </select><br />
        
		<label for="value" class="aligntext">Waarde:</label><input id="value" type="text" name="value" value="<?php echo $waarde ?>"/> <br />
		<label for="to" class="aligntext">Valuta naar:</label>
        <select id="to" name="to">
        <?php
		//genereer keuzelijst
		foreach($valuta as $land => $waarde_tov_euro){
			if($_SERVER['REQUEST_METHOD']=="POST"){
				if(isset($_POST['to']) && $_POST['to'] == $land){
					// zorg ervoor dat je gekozen waarde onthouden blijft
					$selectedto = 'selected="selected"';
					}
				else{
					$selectedto = '';
					}
				}
			else{
				$selectedto= '';
				}
			echo '<option value="'.$land.'" '.$selectedto.'>'.$land.'</option>';
			}
		?>
        </select><br />
		<input type="submit" name="calculate" value="calculate" />
		</fieldset>
</form>
<?php
if(isset($reactie)){
	//toon resultaat
	echo '<p>'.$reactie.'</p>';
	}
?>
<p>
    <a href="http://validator.w3.org/check?uri=referer"><img style="border:0;width:88px;height:31px" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" />
    </a>
    <a href="http://jigsaw.w3.org/css-validator/">
  		<img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" />
 	</a>

</p>

  
</body>
</html>
[/code]

[b]Wil je liever vanuit een database werken om je valuta op te slaan, dan kan dat eenvoudig[/b]
Maak de volgende tabel aan:
[code]
CREATE TABLE `valuta` (
`id` TINYINT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`munteenheid` VARCHAR( 50 ) NOT NULL ,
`waarde` FLOAT(8, 2 ) NOT NULL
) 
[/code]

Vervang de regel waarin de array -> $valuta wordt gemaakt door het onderstaande stukje PHP (let op dat je de <?php tags dan niet 2 keer opend, dus niet zomaar kopiëren. De php tags staan hier om de code goed gehighlight te laten zien)

<?php
$username="gebruikersnaam";
$server="localhost";
$password="geheimpje";
$database="valuta";
// bovenstaande regels aanpassen indien nodig

$verbind = mysql_connect($server,$username,$password) or trigger_error('Kon geen verbinding maken'); 
mysql_select_db($database);

$sql="
SELECT 
   munteenheid,
   waarde
FROM
   valuta
ORDER BY
   munteenheid";
$result=mysql_query($sql);
$valuta=array();
if(mysql_num_rows($result) > 0){//er zijn resultaten
	while($row=mysql_fetch_assoc($result)){
		// maak de valuta array vanuit de database gegevens
		$valuta[$row['munteenheid']]=$row['waarde'];
		}
	}

		
?>

[b]
En hier dus de complete code waarbij de data live wordt ingelezen, en waarbij alles is vertaald naar het Nederlands. (inclusief de laatste bijwerkdatum)[/b]

[code]
<?php
// geef alle waarschuwingen en fouten weer
ini_set('display_errors', 1);
error_reporting(E_ALL);

// maak een array met alle Nederlandse vertalingen van de valuta
$vertaling = array(
"AED" => "Dirham (Ver. Arab. Emiraten)",
"ARS" => "Argentijnse Peso",
"AUD" => "Australische Dollar",
"BHD" => "Bahreinse Dinar",
"BND" => "Bruneise Dollar",
"BRL" => "Braziliaanse Real",
"BWP" => "Botswanese Pula",
"CAD" => "Canadese Dollar",
"CHF" => "Zwitserse Frank",
"CLP" => "Chileense Peso",
"CNY" => "Chinese Yuan",
"COP" => "Colombiaanse Peso",
"CYP" => "Cypriotische Pond",
"CZK" => "Tsjechische Koruna",
"DKK" => "Deense Kroon",
"EUR" => "Europ",
"GBP" => "Engelse Pond",
"HUF" => "Hongaarse Forint",
"IDR" => "Indonesische Rupiah",
"ILS" => "Nieuwe Israëlische Sjekel",
"INR" => "Indiase Rupee",
"IRR" => "Iraanse Rial",
"ISK" => "IJslandse Kroon",
"JPY" => "Japanse Yen",
"KRW" => "Koreaanse Won",
"KWD" => "Koeweitse dinar",
"LKR" => "Sri Lankese Rupee",
"LYD" => "Libische Dinar",
"MTL" => "Maltese Lira",
"MUR" => "Mauritaanse Rupee",
"MXN" => "Mexicaanse Peso",
"MYR" => "Maleisische Ringgit",
"NOK" => "Noorse Kroon",
"NPR" => "Nepalese Rupee",
"NZD" => "Nieuw Zeelandse Dollar",
"OMR" => "Omaanse Rial",
"PKR" => "Pakistaanse Rupee",
"PLN" => "Poolse Zloty",
"QAR" => "Qatarese Riyal",
"SAR" => "Saudi Arabische Riyal",
"SEK" => "Zweedse Kroon",
"SGD" => "Singaporese Dollar",
"SIT" => "Sloveense Tolar",
"THB" => "Thaise Baht",
"TTD" => "Trinidad &amp; Tobago Dollar",
"USD" => "Amerikaanse Dollar",
"VEB" => "Venezolaanse Bolívar",
"ZAR" => "Zuid Afrikaanse Rand" 
);
$months=array(
"January" => 1,
"February" => 2,
"March" => 3,
"April" => 4,
"May" => 5,
"June" => 6,
"July" => 7,
"August" => 8,
"September" => 9,
"October" => 10,
"November" => 11,
"December" => 12);
// maak een array met de namen van de valuta en de bijbehorende waarde.
$xmlfile = file_get_contents('http://currencysource.com/RSS/EUR.xml');
//         preg_match("/Cube time=[\",'](.*)[\",']/i", $xmlfile, $pubdate);
		 preg_match("/\<pubDate\>(.*)\<\/pubDate\>/i", $xmlfile, $pubdate);
		 //get month number
		 $change_month=$months[substr($pubdate[1],8,-18)];
		 $change_year=intval(substr($pubdate[1],-17,4));
		 $change_day=intval(substr($pubdate[1],5,2));
		 $change_hour=intval(substr($pubdate[1],-12,2));
		 $change_minutes=intval(substr($pubdate[1],-9,2));
		 $change_seconds=intval(substr($pubdate[1],-6,2));
		 $change_time_zone=substr($pubdate[1],-3);
		 //correct to dutch time
		 if($change_time_zone=='CST'){
		 	$correct=7;
			}
		 else{
		 	$correct=6;
			}
		$changedate=mktime($change_hour+$correct,$change_minutes,$change_seconds,$change_month,$change_day,$change_year);
		$last_update=date('d-m-Y H:i:s',$changedate);
        
		
		preg_match_all("/\<br\>(.*)\<\/br\>/i", $xmlfile, $getvalues);
		preg_match_all("/\<br\>(.*)\<br\>\<br\>Call/i", $xmlfile, $getvalues);
        
		$valuta=array();
		
		foreach($getvalues[1] AS $waarde){
			$value_name = str_replace("1 Euro (EUR) = ","",$waarde);
			$value_name = str_replace(",","",$value_name);
			$value_name_array = preg_split("/[\s,]+/", $value_name);
			$value = $value_name_array[0];
			$aantal = count($value_name_array);
			$short = $value_name_array[$aantal-1];
			$short = str_replace('(','',$short);
			$short = str_replace(')','',$short);
			$valuta[$vertaling[$short]] = $value;
			}
//controleer op posten
if($_SERVER['REQUEST_METHOD'] == 'POST'){
	$van=$_POST['from'];
	$naar=$_POST['to'];
	// rond de eventueel ingevulde waarde met cijfers achter de , of . af naar 2 getallen achter de komma.
	$waarde=str_replace(',','.',$_POST['value']);
	$waarde=round($waarde,2);
	
	//wanneer je van een valuta naar dezelfde valuta wil gaan omrekenen
	if($van == $naar){
		$reactie = 'Grappig hoor dat je probeerd van '.$van.' naar '.$naar.' te rekenen, dat is hetzelfde!';
		}
	else{
		// als de 
		if($valuta[$van] == $valuta[$naar]){
			$reactie = $van.' heeft dezelfde waarde als '.$naar.'. Dat betekend dat de omgerekende waarde '.$waarde.' is.';
			}
		else{
			// toon de uitkomst van het omrekenen
			$reactie = $waarde .' '. $van.' omgerekend in '.$naar.' is '.round(($valuta[$naar]/$valuta[$van])*$waarde,2).'.';
			}
		}
	}
else{
	$waarde=1;
	}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
label{
	cursor:pointer;
	}
label.aligntext{
	float: left;
	width: 100px;
	text-align: left;
	padding-right: 3px;
	line-height:22px;
	}

</style>
<title>Valuta calculator - by Robert Deiman</title>
</head>
<body>
<?php
echo 'De valuta zijn op het laatst bijgewerkt op: '.$last_update.'<br /><br />';
?>
<form name="database" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
		<fieldset><legend>Bereken de waarde (je kan komma getallen invullen door een . of , te gebruiken bij de invoer):</legend>
		<label for="from" class="aligntext">Valuta van:</label>
        <select id="from" name="from">
        <?php
		// genereer de keuzelijst
		foreach($valuta as $land => $waarde_tov_euro){
			if($_SERVER['REQUEST_METHOD']=="POST" || $_SERVER['REQUEST_METHOD'] == 'post'){
				if(isset($_POST['from']) && $_POST['from'] == $land){
					// zorg ervoor dat je gekozen waarde onthouden blijft
					$selectedfrom= 'selected="selected"';
					}
				else{
					$selectedfrom = '';
					}
				}
			else{
				$selectedfrom= '';
				}
			echo '<option value="'.$land.'" '.$selectedfrom.'>'.$land.'</option>';
			}
		?>
        </select><br />
        
		<label for="value" class="aligntext">Waarde:</label><input id="value" type="text" name="value" value="<?php echo $waarde ?>"/> <br />
		<label for="to" class="aligntext">Valuta naar:</label>
        <select id="to" name="to">
        <?php
		//genereer keuzelijst
		foreach($valuta as $land => $waarde_tov_euro){
			if($_SERVER['REQUEST_METHOD']=="POST"){
				if(isset($_POST['to']) && $_POST['to'] == $land){
					// zorg ervoor dat je gekozen waarde onthouden blijft
					$selectedto = 'selected="selected"';
					}
				else{
					$selectedto = '';
					}
				}
			else{
				$selectedto= '';
				}
			echo '<option value="'.$land.'" '.$selectedto.'>'.$land.'</option>';
			}
		?>
        </select><br />
		<input type="submit" name="calculate" value="calculate" />
		</fieldset>
</form>
<?php
if(isset($reactie)){
	//toon resultaat
	echo '<p>'.$reactie.'</p>';
	}
?>
<p>
    <a href="http://validator.w3.org/check?uri=referer"><img style="border:0;width:88px;height:31px" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" />
    </a>
    <a href="http://jigsaw.w3.org/css-validator/">
  		<img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" />
 	</a>

</p>

  
</body>
</html>
[/code]