免费的USD:CAD汇率api不再免费,我没有编写此脚本,但不再起作用。我找到了另一个免费的USD:CAD汇率api,但是我需要更新脚本才能使其正常工作。我已尽我所能(我不是程序员),但我得到了这个警告:第14行的// path ...中非法的字符串偏移量“ rates”。Dunno如何解决此问题,我在线阅读但无法找不到可靠的答案。
api网址:https://api.exchangeratesapi.io/latest?base=USD
我尝试过:
$firstElement{['rates']['CAD']}; //not work
$firstElement->{['rates']['CAD']}; //not work
$firstElement->['rates']['CAD']; //not work
对不起,我没有程序员...
<?php
$rateFilePath = 'data/rate.json';
$rateFile = json_decode(file_get_contents($rateFilePath), true);
$lastUpdate = strtotime($rateFile['lastUpdate']);
if(floor(time() - $lastUpdate / 86400) >= 1){
$url = "https://api.exchangeratesapi.io/latest?base=USD";
$file = json_decode(file_get_contents($url)) or die("feed not loading");
$firstElement = reset($file);
$rateDate = (string) $firstElement->{'timestamp'};
$rateFile['lastUpdate'] = $rateDate;
$rate = (float) $firstElement['rates']['CAD'];
$rateFile['rate'] = $rate;
$rf = fopen($rateFilePath, 'w');
fwrite($rf, json_encode($rateFile));
fclose($rf);
} else {
$rate = $rateFile['rate'];
}
?>
$ rate应该约为1.34 ...(当前的usd:cad汇率)
但是$ rate总是返回0。
基本上,脚本检查自上次更新以来已经过了多长时间,如果还没有太长,它只是从文件中返回$ rate值,如果已经过了一段时间,它将获取该值的api并将其写入清除文件内容后,服务器上位于data / rate.json中的文件。