Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Utilizzare e interpretare XML (esterno) per visualizzare un solo dato

    Ciao a tutti,
    vi spiego subito il problema: devo visualizzare in un box sul mio sito, il valore dell' argento sul mercato (solo questo dato mi serve, nemmeno gli altri dati tipo la variazione o altro ...), e il sito instaforex (http://partners.instaforex.com/quotes_description.php) mette a disposizione attraverso una chiamata URL il risultato in un file XML (ma anche attraverso un json e un array, sul sito ci sono vari esempi).

    Io però non riesco ad usare questo xml (qui l'esempio) che viene generato solo attraverso la chiamata di questo url ...

    Vorrei stampare a video SOLO il valore dell' argento (senza nemmeno gli altri dati che vengono generati dal file) ma non so come fare.

    Mi aiutate per favore ?

  2. #2
    Codice PHP:
    <?php
    $xmlstr 
    '
    <items>
        <item>
            <symbol>SILVER</symbol>
            <bid>30.45</bid>
            <ask>30.49</ask>
            <change>0.01</change>
            <digits>2</digits>
            <lasttime>1357948673</lasttime>
        </item>
    </items>
    '
    ;

    $xml simplexml_load_string($xmlstr);

    foreach(
    $xml as $item) {
        echo 
    "Symbol: ".$item->symbol."
    "
    ;
        echo 
    "Bid: ".$item->bid."
    "
    ;
        echo 
    "Ask: ".$item->ask."
    "
    ;
        echo 
    "Change: ".$item->change."
    "
    ;
        echo 
    "Digits: ".$item->digits."
    "
    ;
        echo 
    "Lasttime: ".$item->lasttime."
    "
    ;
    }
    ?>
    In questo modo stampi tutto l'XML.
    Se ti serve solamente la quotazione dell'argento basta un semplice if:

    Codice PHP:
    foreach($xml as $item) {
        if (
    $item->symbol == 'SILVER') {
            echo 
    "Symbol: ".$item->symbol."
    "
    ;
            echo 
    "Bid: ".$item->bid."
    "
    ;
            echo 
    "Ask: ".$item->ask."
    "
    ;
            echo 
    "Change: ".$item->change."
    "
    ;
            echo 
    "Digits: ".$item->digits."
    "
    ;
            echo 
    "Lasttime: ".$item->lasttime."
    "
    ;
        }

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    innanzitutto grazie mille per l'aiuto ...
    ok così va bene, però in teoria non ho ancora risolto il mio problema ...
    io i dati aggiornati in tempo reale dell' argento li devo prendere dinamicamente da questo file xml che mi mette a disposizione quel sito (tramite quell' url) ...

    Come faccio ad importarli (da quel sito/url) e poi a stamparli ?

    Scusami, non sono molto esperto ancora ...

  4. #4
    Codice PHP:
    $xmlstr file_get_contents('https://quotes.instaforex.com/get_quotes.php?m=xml');
    $xml simplexml_load_string($xmlstr);

    foreach(
    $xml as $item) {
        echo 
    "Symbol: ".$item->symbol."
    "
    ;
        echo 
    "Bid: ".$item->bid."
    "
    ;
        echo 
    "Ask: ".$item->ask."
    "
    ;
        echo 
    "Change: ".$item->change."
    "
    ;
        echo 
    "Digits: ".$item->digits."
    "
    ;
        echo 
    "Lasttime: ".$item->lasttime."
    "
    ;

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    grande, funziona !!!
    Mitico, mitico!!! sono contento!

    Ultima domanda:

    Queste due funzioni "file_get_contents" e "simplexml_load_string" mi sembra di aver capito che funzionano solo con PHP 5 ? giusto ?
    Su server senza PHP 5 ho provato e ho visto che non funziona, sembra rimanere tutto vuoto ...

    Se dovessi avere a disposizione un hosting su un server dove non gira PHP 5 come posso risolvere, eventualmente ?

    Ciao e grazie mille per l' aiuto ...

  6. #6
    La funzione file_get_contents() come si evince dal manuale è presente anche in PHP 4. Per quanto riguarda invece la funzione simplexml_load_string(), presente solo in PHP 5 puoi provare a dare un'occhiata a SimpleXML for PHP4
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    ok grazie ... provo a dargli un' occhiata ...

  8. #8
    ok funziona tutto su PHP 5, perfetto!!! Grande!!! Grazie per l'aiuto ...

    DOMANDA: ma se volessi invece usare lo stesso output anzichè in XML ma in formato JSON, come potrei fare ? (per ovviare alla compatibilità di "simplexml_load_string" su PHP 4 o PHP 5)

    Questo è l' url che se richiamato da lo stesso risultato in formato JSON:

    https://quotes.instaforex.com/get_qu...=json&q=silver

    Sto cercando di capire un po' come funziona il JSON ma già non riesco a capire come posso richiamarlo esternamente ...

    Devo usare "file_get_contents" oppure "fsopen" ?

  9. #9
    Puoi utilizzare la funzione json_decode(), ma considera che anche per queste funzioni è necessaria una versione di PHP dalla 5.2 in poi altrimenti (per versioni inferiori) puoi dare un'occhiata a json_in_php_4_or_php_51x
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.