Wenn eine Firma international tätig ist und Rechnungen in verschiedenen Währungen schreibt, ist die Nutzung aktueller Währungskurse unumgänglich.

Natürlich können diese im Internet, zum Beispiel auf der Seite der EZB (Europäische Zentral Bank) nachgeschlagen werden. Aber das Nachschlagen und Eintragen in die Software mit welcher die Rechnungen geschrieben werden, ist aufwändig und fehleranfällig.

Deshalb habe ich ein kleines Script in PHP geschrieben, mit welchem die Tageskurse automatisch importiert werden.
Die Kurse liegen (Werk-)täglich aktuell (ab ca. 16 Uhr) als XML Datei auf dem Server der EZB und können mit folgendem Befehl abgeholt und lokal in die Datei exchange_rate.xml gespeichert werden:

$xml_file = "exchange_rate.xml";
$shell_kommando = 'wget -O "' . $xml_file . '" "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"';
shell_exec( $shell_kommando );

Dieser Befehl funktioniert natürlich genauso gut in der Linux Shell.
Mit dem folgenden Befehl wird der Inhalt dieser Datei in ein PHP Array übertragen:

if (file_exists($xml_file)) {
	$xml = simplexml_load_file($xml_file);
	$datum = $xml->Cube->Cube['time']; // enthält das Datum der Kurse
	foreach ( $xml->Cube->Cube->Cube as $value ) {
		$waehrung = $value['currency']; // enthält die Währung
		$kurs = $value['rate']; // enthält den Tageskurs
	}
}

Die Werte aus der foreach Schleife sind nun bereit um in einer Datenbank gespeichert zu werden. Mit

in_array( $value['currency'], $gesuchte_kurse )

können nur benötigte Kurse aus dem Array $gesuchte_kurse importiert werden. Das Array muss dazu die gewünschten Währungen als Abkürzung enthalten.

Ich nutze diese Abfrage nun seit einigen Monaten und es gab noch keine Ausfälle auf Seiten des EZB Servers. Das Datum speichere ich in einem Log und wenn mehr als 5 Tage (länger ist auch ein langes Wochenende nicht) kein Datum gespeichert wird, gibt es einen Alarm.


Über

Dies ist das private Blog von Sven Anacker. Er schreibt am liebsten über Haustechnik, KNX, PHP, Linux, Modellbau und gelegentlich zu allem Möglichen. Beruflich ist er Selbstständig als Marketingconsultant und KNX Systemintegrator in Wuppertal.