I am pulling data from a weather api that only wants you to pull from the api not more than once every ten minutes, so I figured that I would save the json string to a file and save the time pulled to a file so I can compare current time to the last pull time and then either pull the data from the file or from the api. The if statement seems to work just fine. When the diff is over 600 it pulls the data from the api and displays the data, but when the diff is under 600 the array doesn't seem to be the same...
Any insight would be extremely appreciated!
function get_weather_data() {
//define filepath to save/read/write weather data
$weatherData = "";
$weatherDataFile = "assets/docs/weather.json";
//define filepath to save/read/write last api call time
$prevTimeFile = "assets/docs/prevtime.txt";
$prevTime = file_get_contents($prevTimeFile);
$currTime = time();
$diff = ($currTime - $prevTime);
//If diff is longer than 10 mins (600 secs) then pull from api
if ($diff < 600) { //get weather data from file
$weatherData = file_get_contents($weatherDataFile);
}
else { //get weather data from api
$request = ('http://api.openweathermap.org/data/2.5/forecast/city?id=4699066&APPID=xxxxxxxxxxxxxxxxxx');
$weatherData = file_get_contents($request);
//save api data back to weatherData file
$wFile = fopen($weatherDataFile, "cb");
fwrite($wFile, $weatherData);
fclose($wFile);
//save current time of data to prevTimeFile
$tFile = fopen($prevTimeFile, "cb");
fwrite($tFile, time() );
fclose($tFile);
}
$weather = json_decode($weatherData, true);
echo $diff;
echo $weather['city']['name'];
}