[PHP] Prelievo dati da xml online.

Discussione in 'PHP' iniziata da anco93, 24 Luglio 2018.

  1. anco93

    anco93 Nuovo Utente

    Registrato:
    21 Luglio 2018
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    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.mrwebmaster.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.
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.550
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    PHP:
    <?php
    $xml
    =simplexml_load_file("http://api.wunderground.com/api/26d116fabae3e597/conditions/q/PWS:IROCCADI23.xml");
    print_r($xml);
    ?>
    questo codice lo trovi al link sottostante, con tutte le operazioni di lettura che puoi fare su di esso
    https://www.w3schools.com/php/func_simplexml_load_file.asp
     
    A anco93 piace questo elemento.
  3. anco93

    anco93 Nuovo Utente

    Registrato:
    21 Luglio 2018
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    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 :(
     
  4. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.550
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    forse hai dimenticato un pezzo …..
    PHP:
    echo $xml->current_observation->temp_c "<br />";
     
  5. anco93

    anco93 Nuovo Utente

    Registrato:
    21 Luglio 2018
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    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
     
  6. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.550
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    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
     
  7. anco93

    anco93 Nuovo Utente

    Registrato:
    21 Luglio 2018
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    In realtà se nota ho allegato il codice aggiornato. Credo abbia visto quelle iniziale. In quello aggiornato mi sembra corretto :(
     
  8. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.550
    Mi Piace Ricevuti:
    126
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    ho notato tutto, ho controllato il codice aggiornato ed è corretto e funziona,

    si sta ripetendo la situazione del post precedente dove improvvisamente tutto ha iniziato a funzionare senza spiegare il motivo,
    https://forum.mrwebmaster.it/threads/php-prelievo-dati-da-txt.51926/#post-202496
    altro non so dire
     
    A anco93 piace questo elemento.
  9. anco93

    anco93 Nuovo Utente

    Registrato:
    21 Luglio 2018
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    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: 26 Luglio 2018
  10. anco93

    anco93 Nuovo Utente

    Registrato:
    21 Luglio 2018
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ho risolto così:

    PHP:
    $curl_handle=curl_init();
    curl_setopt($curl_handleCURLOPT_URL,'http://api.wunderground.com/api/26d116fabae3e597/conditions/q/PWS:IROCCADI23.xml');
    curl_setopt($curl_handleCURLOPT_CONNECTTIMEOUT2);
    curl_setopt($curl_handleCURLOPT_RETURNTRANSFER1);
    curl_setopt($curl_handleCURLOPT_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: 26 Luglio 2018
Sto caricando...

Condividi questa Pagina