Subversion Repositories cheapmusic

Rev

Rev 16 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
?>