[PHP] Prelievo dati da xml online.

  • Creatore Discussione Creatore Discussione anco93
  • Data di inizio Data di inizio

anco93

Nuovo Utente
21 Lug 2018
12
0
1
Buongiorno,
avrei bisogno del Vostro aiuto.
Avrei bisogno di realizzare un PHP che legga i dati presenti in questo xml:

http://api.wunderground.com/api/26d116fabae3e597/conditions/q/PWS:IROCCADI23.xml

e mi permetta di stampare alcuni dati in posizioni specifiche (ad esempio <temp_c>26.0</temp_c>).
Un po come abbiamo fatto nell'altro post (https://forum.mrw.it/threads/php-prelievo-dati-da-txt.51926/) con il txt.
Potreste aiutarmi?

Essendo una funzione con un api a call a pagamento sarebbe utile che lo script importi i dati ogni tot minuti su un txt e poi venga fatta la lettura da li.
E' possibile? Grazie intanto per la lettura.
 
Grazie per la solita veloce risposta :) .
Ho provato così:

Codice:
<?php
$xml=simplexml_load_file("api.wunderground.com/api/26d116fabae3e597/conditions/q/PWS:IROCCADI23.xml");
echo $xml->temp_c . "<br>";
echo $xml->relative_humidity . "<br>";
echo $xml->wind_dir . "<br>";
echo $xml->body;
?>

Ma mi restituisce una pagina bianca :(
 
Modifica fatta:

Codice:
<?php
$xml=simplexml_load_file("http://api.wunderground.com/api/26d116fabae3e597/conditions/q/PWS:IROCCADI23.xml");

echo $xml->current_observation->temp_c . "<br />";

?>

Ma nulla. Pagina bianca: http://meteocloud.it/test.php
 
forse anche con questo script sbagli a fare il copia/incolla
questo é il risultato con la modifica suggerita
upload_2018-7-25_19-41-45.png

body invece non esiste tra i dati restituiti
 
In realtà se nota ho allegato il codice aggiornato. Credo abbia visto quelle iniziale. In quello aggiornato mi sembra corretto :(
 
  • Like
Reactions: anco93
Nel post precedente ho scritto come ho risolto.
Ho semplicemente applicato e incollato il vostro codice corretto ed ha funzionato.
C'erano errori nel PHP.

In questo ho appena notato invece che il codice funziona se mi salvo l'xml in local sull'ftp.
Se punto invece al link no e mi restituisce una pagina bianca.
Forse è li il problema? Come devo puntare il link?
 
Ultima modifica:
Ho risolto così:

PHP:
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'http://api.wunderground.com/api/26d116fabae3e597/conditions/q/PWS:IROCCADI23.xml');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36');
$response = curl_exec($curl_handle);
curl_close($curl_handle);

//var_dump($response);

$xml = simplexml_load_string($response);

echo $xml->current_observation->temp_c . "<br />";
 
Ultima modifica di un moderatore:

Discussioni simili