警告:...第14行中的字符串偏移量非法

时间:2019-05-24 14:49:49

标签: php

免费的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中的文件。

0 个答案:

没有答案