Rev 5 | Rev 16 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
$rateFile = "exchangeRates.php";
if (is_file($rateFile)) {
$diff = (time() - filemtime($rateFile)) / 86400;
echo "<br>$rateFile last modified " . $diff . " days ago.";
if ($diff < 0.9) {
echo "<br>Exiting - File too new.";
exit(0);
}
}
$str = '<?php' . PHP_EOL;
$str .= 'function getExchangeRate($source, $target) {' . PHP_EOL;
$str .= ' $currencyRates = array (' . PHP_EOL;
/*
$str .= retrieveRates("AUD");
$str .= ','. PHP_EOL;
$str .= retrieveRates("CAD");
$str .= ','. PHP_EOL;
$str .= retrieveRates("CNY");
$str .= ','. PHP_EOL;
$str .= retrieveRates("EUR");
$str .= ','. PHP_EOL;
$str .= retrieveRates("GBP");
$str .= ','. PHP_EOL;
$str .= retrieveRates("HKD");
$str .= ','. PHP_EOL;
$str .= retrieveRates("INR");
$str .= ','. PHP_EOL;
*/
$str .= retrieveRates("USD");
$str .= ' );' . PHP_EOL;
$str .= '' . PHP_EOL;
$str .= ' $rate = 1;' . PHP_EOL;
$str .= '' . PHP_EOL;
$str .= ' if (array_key_exists($source, $currencyRates)) {' . PHP_EOL;
$str .= ' if (array_key_exists($target, $currencyRates[$source])) {' . PHP_EOL;
$str .= ' $rate = $currencyRates[$source][$target];' . PHP_EOL;
$str .= ' }' . PHP_EOL;
$str .= ' }' . PHP_EOL;
$str .= '' . PHP_EOL;
$str .= ' return($rate);' . PHP_EOL;
$str .= '}' . PHP_EOL;
$str .= '?>' . PHP_EOL;
if (is_file($rateFile)) {
rename($rateFile, $rateFile . ".old");
}
file_put_contents($rateFile, $str);
echo "<br>$rateFile updated.";
exit(0);
function retrieveRates($source)
{
$response = '{"success":true,"terms":"https:\/\/currencylayer.com\/terms","privacy":"https:\/\/currencylayer.com\/privacy","timestamp":1556135045,"source":"USD","quotes":{"USDAED":3.672988,"USDAFN":77.597501,"USDALL":110.450155,"USDAMD":481.765027,"USDANG":1.875039,"USDAOA":321.14302,"USDARS":43.940475,"USDAUD":1.42563,"USDAWG":1.8,"USDAZN":1.704964,"USDBAM":1.744902,"USDBBD":2.0016,"USDBDT":84.381976,"USDBGN":1.754799,"USDBHD":0.37707,"USDBIF":1832.5,"USDBMD":1,"USDBND":1.350497,"USDBOB":6.91025,"USDBRL":3.98525,"USDBSD":1.00015,"USDBTC":0.000184,"USDBTN":69.38201,"USDBWP":10.717978,"USDBYN":2.10085,"USDBYR":19600,"USDBZD":2.015697,"USDCAD":1.348145,"USDCDF":1634.999792,"USDCHF":1.02069,"USDCLF":0.024394,"USDCLP":673.100423,"USDCNY":6.721896,"USDCOP":3216.3,"USDCRC":598.520031,"USDCUC":1,"USDCUP":26.5,"USDCVE":98.762501,"USDCZK":23.0746,"USDDJF":177.719868,"USDDKK":6.69357,"USDDOP":50.62502,"USDDZD":119.589528,"USDEGP":17.17603,"USDERN":15.000262,"USDETB":28.930162,"USDEUR":0.89645,"USDFJD":2.1359,"USDFKP"
:0.77288,"USDGBP":0.77482,"USDGEL":2.704144,"USDGGP":0.774961,"USDGHS":5.116705,"USDGIP":0.772881,"USDGMD":49.585042,"USDGNF":9225.000049,"USDGTQ":7.62025,"USDGYD":210.254998,"USDHKD":7.842625,"USDHNL":24.529903,"USDHRK":6.65535,"USDHTG":85.715968,"USDHUF":288.392026,"USDIDR":14164,"USDILS":3.618402,"USDIMP":0.774961,"USDINR":70.021298,"USDIQD":1190,"USDIRR":42104.999958,"USDISK":121.920212,"USDJEP":0.774961,"USDJMD":133.140351,"USDJOD":0.709012,"USDJPY":112.227023,"USDKES":101.520214,"USDKGS":69.769475,"USDKHR":4042.000175,"USDKMF":439.850439,"USDKPW":900.057079,"USDKRW":1157.270119,"USDKWD":0.304301,"USDKYD":0.83336,"USDKZT":378.220276,"USDLAK":8619.999915,"USDLBP":1510.950196,"USDLKR":174.89594,"USDLRD":167.750206,"USDLSL":14.410127,"USDLTL":2.95274,"USDLVL":0.60489,"USDLYD":1.379876,"USDMAD":9.664498,"USDMDL":17.850502,"USDMGA":3572.501786,"USDMKD":55.075502,"USDMMK":1529.401476,"USDMNT":2640.890169,"USDMOP":8.0779,"USDMRO":356.99953,"USDMUR":35.051499,"USDMVR":15.449861,"USDMWK":726.979416,"USDMXN":19.0
5955,"USDMYR":4.130302,"USDMZN":64.714995,"USDNAD":14.420349,"USDNGN":360.000121,"USDNIO":33.020252,"USDNOK":8.641898,"USDNPR":111.760302,"USDNZD":1.517335,"USDOMR":0.385105,"USDPAB":0.99995,"USDPEN":3.31655,"USDPGK":3.360976,"USDPHP":52.270308,"USDPKR":141.590534,"USDPLN":3.85031,"USDPYG":6254.701107,"USDQAR":3.64125,"USDRON":4.264501,"USDRSD":105.779609,"USDRUB":64.3639,"USDRWF":907.5,"USDSAR":3.750601,"USDSBD":8.12775,"USDSCR":13.683979,"USDSDG":47.612495,"USDSEK":9.430103,"USDSGD":1.362305,"USDSHP":1.320899,"USDSLL":8800.000375,"USDSOS":579.999762,"USDSRD":7.458014,"USDSTD":21050.59961,"USDSVC":8.7502,"USDSYP":514.999924,"USDSZL":14.419666,"USDTHB":32.05303,"USDTJS":9.430098,"USDTMT":3.5,"USDTND":3.016703,"USDTOP":2.274601,"USDTRY":5.881035,"USDTTD":6.78915,"USDTWD":30.90804,"USDTZS":2305.000114,"USDUAH":26.580964,"USDUGX":3740.050173,"USDUSD":1,"USDUYU":34.459876,"USDUZS":8435.00058,"USDVEF":9.987504,"USDVND":23217.8,"USDVUV":114.629871,"USDWST":2.616951,"USDXAF":585.180322,"USDXAG":0.066887,"USDXAU":0.
000784,"USDXCD":2.70255,"USDXDR":0.723949,"USDXOF":591.000366,"USDXPF":107.000217,"USDYER":250.29681,"USDZAR":14.43975,"USDZMK":9001.196467,"USDZMW":12.525002,"USDZWL":322.355011}}';
$accessKey = "9ca495b56281a691775f8b289e586f8f";
$apiCall = "http://apilayer.net/api/live?access_key=" . $accessKey . "&source=";
$json = file_get_contents($apiCall . $source);
$json = json_decode($json);
//$json = json_decode($response);
if ($json->success !== true) {
echo "<br>CurrencyLayer Error (" . $source . "): " . $json->error->code . " / " . $json->error->info;
echo "<br>Exiting.";
exit(0);
}
$str = ' "' . $source . '" => array (' . PHP_EOL;
foreach ($json->quotes as $symbol => $quote) {
$str .= ' "' . substr($symbol, 3) . '" => ' . $quote . ',' . PHP_EOL;
}
$str .= ' )' . PHP_EOL;
return ($str);
}
?>