Premessa non sono esperto di php.
Dal web scarico i dati aggiornati del meteo da un file json.
Il file è caratterizzato da 2 parti distinte.
La prima parte riguarda i dati giornalieri e la seconda parte riguarda i dati con le previsioni di più giorni.
Il file naturalmente è scritto tutto di seguito io l’ho spezzato per far capire il meccanismo.
{
"latitude":45.4,"longitude":8.92,"generationtime_m s":0.10204315185546875,"utc_offset_seconds":3600," timezone":"Europe/Rome","timezone_abbreviation":"CET","elevation":12 7.0,
"current_units":
{"time":"iso8601","interval":"seconds","temperatur e_2m":"°C","relative_humidity_2m":"%","apparent_te mperature":"°C","weather_code":"wmo code","pressure_msl":"hPa","surface_pressure":"hPa ","wind_speed_10m":"km/h","wind_direction_10m":"°"},
"current":{"time":"2024-01-23T21:30","interval":900,"temperature_2m":3.2,"rel ative_humidity_2m":77,"apparent_temperature":0.2," weather_code":1,"pressure_msl":1033.0,"surface_pre ssure":1016.9,"wind_speed_10m":4.8,"wind_direction _10m":48},"hourly_units":{"time":"iso8601","temper ature_2m":"°C","relative_humidity_2m":"%","weather _code":"wmo code"},
"hourly":
{"time":["2024-01-23T00:00","2024-01-23T01:00","2024-01-23T02:00","2024-01-23T03:00","2024-01-23T04:00","2024-01-23T05:00","2024-01-23T06:00","2024-01-23T07:00","2024-01-23T08:00","2024-01-23T09:00","2024-01-23T10:00","2024-01-23T11:00","2024-01-23T12:00","2024-01-23T13:00","2024-01-23T14:00","2024-01-23T15:00","2024-01-23T16:00","2024-01-23T17:00","2024-01-23T18:00","2024-01-23T19:00","2024-01-23T20:00","2024-01-23T21:00","2024-01-23T22:00","2024-01-23T23:00","2024-01-24T00:00","2024-01-24T01:00","2024-01-24T02:00","2024-01-24T03:00","2024-01-24T04:00","2024-01-24T05:00","2024-01-24T06:00","2024-01-24T07:00","2024-01-24T08:00","2024-01-24T09:00","2024-01-24T10:00","2024-01-24T11:00","2024-01-24T12:00","2024-01-24T13:00","2024-01-24T14:00","2024-01-24T15:00","2024-01-24T16:00","2024-01-24T17:00","2024-01-24T18:00","2024-01-24T19:00","2024-01-24T20:00","2024-01-24T21:00","2024-01-24T22:00","2024-01-24T23:00","2024-01-25T00:00","2024-01-25T01:00","2024-01-25T02:00","2024-01-25T03:00","2024-01-25T04:00","2024-01-25T05:00","2024-01-25T06:00","2024-01-25T07:00","2024-01-25T08:00","2024-01-25T09:00","2024-01-25T10:00","2024-01-25T11:00","2024-01-25T12:00","2024-01-25T13:00","2024-01-25T14:00","2024-01-25T15:00","2024-01-25T16:00","2024-01-25T17:00","2024-01-25T18:00","2024-01-25T19:00","2024-01-25T20:00","2024-01-25T21:00","2024-01-25T22:00","2024-01-25T23:00"],
"temperature_2m":[0.8,1.1,0.7,0.6,-0.1,-0.3,-0.4,-0.3,-0.5,-0.3,1.6,3.8,6.1,8.6,9.9,10.9,11.0,9.0,6.3,5.0,4.1, 3.4,2.9,2.3,2.0,1.7,1.5,1.1,0.9,0.7,0.0,0.1,-0.0,-0.1,1.2,3.4,6.0,8.2,9.7,10.5,10.5,9.3,7.9,6.7,5.8, 5.3,4.8,4.3,4.0,3.7,3.7,3.5,3.4,3.1,2.9,2.5,2.2,2. 6,4.7,7.8,10.3,12.4,13.9,14.6,14.3,12.7,10.5,8.8,6 .8,5.9,5.1,4.5],"relative_humidity_2m":[79,71,69,70,69,72,74,80,79,78,61,53,53,40,36,35,33 ,48,62,66,69,75,78,80,80,80,80,79,79,79,81,78,78,8 0,77,67,57,49,47,46,48,56,62,66,69,71,73,76,78,80, 82,84,85,88,89,90,90,89,82,71,64,60,56,55,60,67,78 ,94,93,93,91,89],
"weather_code":
[1,0,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,1, 1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0, 1,0,0,0,0,0,0,1,1,1,1,2,2,2,2,1,1,1,0,0,0,0]
}
}
Qui sotto è illustrato come sono strutturati
latitude longitude elevation utc_offset_seconds timezone timezone_abbreviation
45.4 8.92 127.0 GMT GMT
time temperature_2m (°C) relative_humidity_2m (%) apparent_temperature (°C) weather_code (wmo code) pressure_msl (hPa) surface_pressure (hPa) wind_speed_10m (km/h) wind_direction_10m (°) 2024-01-23T21:30 2.6 79 -0.3 2 1033.5 1017.4 4.4 35
time temperature_2m (°C) relative_humidity_2m (%) weather_code (wmo code) 2024-01-23T00:00 1.1 71 2024-01-23T01:00 0.7 69 3 2024-01-23T02:00 0.6 70 2024-01-23T03:00 -0.1 69 2024-01-23T04:00 -0.3 72 ecc.
ecc.
ecc.
Ho bisogno di esportare i dati in 2 file .txt distinti:
Il primo contenete i dati giornalieri, con il seguente formato (carattere separatore potrebbe essere la virgola, vedi esempio).
Esempio:
latitude,45.4,longitude,8.92,generationtime_ms,0.1 0204315185546875,utc_offset_seconds,3600 - - - ecc. ecc. - - -
Il secondo con le previsioni ma con il seguente formato, in pratica: prima Time, poi Temperatura, poi Umidità e infine il Weather code (carattere separatore potrebbe essere la virgola con i dati di ogni ora racchiusi tra le parentesi quadre, vedi esempio).
Esempio:
[2024-01-23T00:00,0.8,79,1] [2024-01-23T01:00,1.1,71,0] - - - ecc. ecc. - - -
La pagina è in formato php e il codice che uso per caricare il file è il seguente:
Codice PHP:
<?phpcurl_setopt($curl_handle, CURLOPT_URL,'https://api.open-meteo.com/v1/forecast?latitude=45.3982&longitude=8.9168¤t=temperature_2m,relative_humidity_2m,weather_code,wind_speed_10m,wind_direction_10m&hourly=temperature_2m,relative_humidity_2m'); curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); $query = curl_exec($curl_handle); print_r (json_decode($query,true)); $data = json_decode($query, true);?>
Ringrazio in anticipo per il vostro contributo.