= 5) { // Fetch the available currencies from CoinGecko API $availableCurrenciesApi = "https://api.coingecko.com/api/v3/simple/supported_vs_currencies"; $currenciesCh = curl_init($availableCurrenciesApi); curl_setopt($currenciesCh, CURLOPT_RETURNTRANSFER, true); $availableCurrenciesJson = curl_exec($currenciesCh); $currenciesHttpCode = curl_getinfo($currenciesCh, CURLINFO_HTTP_CODE); curl_close($currenciesCh); if ($currenciesHttpCode == 200) { $availableCurrencies = json_decode($availableCurrenciesJson, true); } else { $availableCurrencies = array_keys($previousData); unset($availableCurrencies[array_search('time', $availableCurrencies)]); } // Remove excluded currencies $availableCurrencies = array_diff($availableCurrencies, $excludedCurrencies); $currencies = array_map('strtoupper', $availableCurrencies); // Fetch the latest data from CoinGecko API $apiUrl = 'https://api.coingecko.com/api/v3/simple/price?ids=monero&vs_currencies=' . implode('%2C', array_map('strtolower', $currencies)) . '&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true&include_last_updated_at=true'; $ch = curl_init($apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $json = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // If the request worked and was not rate-limited if ($httpCode == 200) { // Decode the fetched data $fetchedData = json_decode($json, true); $moneroData = $fetchedData['monero']; // Initialize new data array $newData = ['time' => $currentTime]; // Update the data for each currency foreach ($currencies as $currency) { $currencyLower = strtolower($currency); if (isset($moneroData[$currencyLower])) { $newData[$currencyLower] = [ 'lastValue' => $moneroData[$currencyLower], 'lastDate' => $currentTime ]; } else { $newData[$currencyLower] = [ 'lastValue' => $previousData[$currencyLower]['lastValue'] ?? null, 'lastDate' => $previousData[$currencyLower]['lastDate'] ?? null ]; } } // Save the new data to JSON files file_put_contents("coingecko.json", json_encode($newData, JSON_PRETTY_PRINT)); file_put_contents("coingecko-original.json", json_encode($moneroData, JSON_PRETTY_PRINT)); $output = $newData; } } // Output the data header('Content-Type: application/json'); echo json_encode($output, JSON_PRETTY_PRINT);