3v4l.org

run code in 500+ PHP versions simultaneously
<?php // Endpoint Open-Meteo per Grosseto $url = "https://api.open-meteo.com/v1/forecast?latitude=42.76&longitude=11.11&hourly=temperature_2m,relative_humidity_2m,weather_code&forecast_days=2&timezone=Europe/Rome"; // Impostazioni di contesto per timeout e User-Agent $options = [ "http" => [ "method" => "GET", "header" => "User-Agent: PHP-Student-Test\r\n", "timeout" => 5 ] ]; $context = stream_context_create($options); // Esecuzione della chiamata HTTP $response = @file_get_contents($url, false, $context); if ($response === FALSE) { die("Errore durante il recupero dei dati dall'API (verificare la connessione internet)."); } // Decodifica JSON $data = json_decode($response, true); if ($data === null) { die("Errore nella decodifica del JSON."); } // Funzione di supporto per i codici meteo WMO function decodificaMeteoCode(int $code): string { return match ($code) { 0 => "Cielo sereno ☀️", 1, 2, 3 => "Prevalentemente sereno / Nuvoloso ⛅", 45, 48 => "Nebbia 🌫️", 51, 53, 55 => "Pioggerella 🌧️", 61, 63, 65 => "Pioggia 🌧️", 71, 73, 75 => "Neve ❄️", 80, 81, 82 => "Rovesci di pioggia 🌦️", 95, 96, 99 => "Temporale 🌩️", default => "Codice sconosciuto ($code)" }; } // Estrazione array $orari = $data['hourly']['time']; $temperature = $data['hourly']['temperature_2m']; $umidita = $data['hourly']['relative_humidity_2m']; $codiciMeteo = $data['hourly']['weather_code']; // Output di test rapido (primi 5 orari) echo "=== TEST API OPEN-METEO (Grosseto) ===\n\n"; for ($i = 0; $i < 5; $i++) { $ora = date("d/m/Y H:i", strtotime($orari[$i])); $meteo = decodificaMeteoCode($codiciMeteo[$i]); echo "[$ora] Temp: {$temperature[$i]}°C | Umidità: {$umidita[$i]}% | Meteo: $meteo\n"; } ?>
Output for 8.2.0 - 8.2.34, 8.3.0 - 8.3.35, 8.4.1 - 8.4.26, 8.5.0 - 8.5.11
Errore durante il recupero dei dati dall'API (verificare la connessione internet).

preferences:
232.34 ms | 1152 KiB | 7 Q