| 1 |
- |
1 |
<?php
|
| 5 |
- |
2 |
$rateFile = "exchangeRates.php";
|
| 1 |
- |
3 |
|
| 5 |
- |
4 |
if (is_file($rateFile)) {
|
| 65 |
- |
5 |
$diff = (time() - filemtime($rateFile)) / 86400;
|
|
|
6 |
echo "$rateFile last modified " . $diff . " days ago." . PHP_EOL;
|
|
|
7 |
if ($diff < 0.9) {
|
|
|
8 |
echo "Exiting - File too new." . PHP_EOL;
|
|
|
9 |
exit(1);
|
|
|
10 |
}
|
| 5 |
- |
11 |
}
|
| 1 |
- |
12 |
|
| 5 |
- |
13 |
$str = '<?php' . PHP_EOL;
|
|
|
14 |
$str .= 'function getExchangeRate($source, $target) {' . PHP_EOL;
|
|
|
15 |
$str .= ' $currencyRates = array (' . PHP_EOL;
|
| 1 |
- |
16 |
|
| 65 |
- |
17 |
/*
|
| 1 |
- |
18 |
$str .= retrieveRates("AUD");
|
|
|
19 |
$str .= ','. PHP_EOL;
|
|
|
20 |
$str .= retrieveRates("CAD");
|
|
|
21 |
$str .= ','. PHP_EOL;
|
|
|
22 |
$str .= retrieveRates("CNY");
|
|
|
23 |
$str .= ','. PHP_EOL;
|
|
|
24 |
$str .= retrieveRates("EUR");
|
|
|
25 |
$str .= ','. PHP_EOL;
|
|
|
26 |
$str .= retrieveRates("GBP");
|
|
|
27 |
$str .= ','. PHP_EOL;
|
|
|
28 |
$str .= retrieveRates("HKD");
|
|
|
29 |
$str .= ','. PHP_EOL;
|
|
|
30 |
$str .= retrieveRates("INR");
|
|
|
31 |
$str .= ','. PHP_EOL;
|
| 65 |
- |
32 |
*/
|
| 5 |
- |
33 |
$str .= retrieveRates("USD");
|
| 1 |
- |
34 |
|
| 5 |
- |
35 |
$str .= ' );' . PHP_EOL;
|
|
|
36 |
$str .= '' . PHP_EOL;
|
|
|
37 |
$str .= ' $rate = 1;' . PHP_EOL;
|
|
|
38 |
$str .= '' . PHP_EOL;
|
|
|
39 |
$str .= ' if (array_key_exists($source, $currencyRates)) {' . PHP_EOL;
|
|
|
40 |
$str .= ' if (array_key_exists($target, $currencyRates[$source])) {' . PHP_EOL;
|
|
|
41 |
$str .= ' $rate = $currencyRates[$source][$target];' . PHP_EOL;
|
|
|
42 |
$str .= ' }' . PHP_EOL;
|
|
|
43 |
$str .= ' }' . PHP_EOL;
|
|
|
44 |
$str .= '' . PHP_EOL;
|
|
|
45 |
$str .= ' return($rate);' . PHP_EOL;
|
|
|
46 |
$str .= '}' . PHP_EOL;
|
|
|
47 |
$str .= '?>' . PHP_EOL;
|
| 1 |
- |
48 |
|
| 5 |
- |
49 |
if (is_file($rateFile)) {
|
| 65 |
- |
50 |
rename($rateFile, $rateFile . ".old");
|
| 5 |
- |
51 |
}
|
| 1 |
- |
52 |
|
| 5 |
- |
53 |
file_put_contents($rateFile, $str);
|
| 16 |
- |
54 |
echo "$rateFile updated." . PHP_EOL;
|
| 5 |
- |
55 |
exit(0);
|
| 1 |
- |
56 |
|
| 65 |
- |
57 |
function retrieveRates($source) {
|
|
|
58 |
$accessKey = "9ca495b56281a691775f8b289e586f8f";
|
|
|
59 |
$apiCall = "http://apilayer.net/api/live?access_key=" . $accessKey . "&source=";
|
| 5 |
- |
60 |
|
| 65 |
- |
61 |
$json = file_get_contents($apiCall . $source);
|
|
|
62 |
$json = json_decode($json);
|
| 1 |
- |
63 |
|
| 65 |
- |
64 |
if ($json->success !== true) {
|
|
|
65 |
echo "CurrencyLayer Error (" . $source . "): " . $json
|
|
|
66 |
->error->code . " / " . $json
|
|
|
67 |
->error->info . PHP_EOL;
|
|
|
68 |
echo "Exiting." . PHP_EOL;
|
|
|
69 |
exit(2);
|
|
|
70 |
}
|
| 1 |
- |
71 |
|
| 65 |
- |
72 |
$str = ' "' . $source . '" => array (' . PHP_EOL;
|
| 1 |
- |
73 |
|
| 65 |
- |
74 |
foreach ($json->quotes as $symbol => $quote) {
|
|
|
75 |
$str .= ' "' . substr($symbol, 3) . '" => ' . $quote . ',' . PHP_EOL;
|
|
|
76 |
}
|
| 1 |
- |
77 |
|
| 65 |
- |
78 |
$str .= ' )' . PHP_EOL;
|
| 1 |
- |
79 |
|
| 65 |
- |
80 |
return ($str);
|
| 5 |
- |
81 |
}
|
| 16 |
- |
82 |
?>
|