Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    6

    Foreach in risposta server

    Salve a tutti, vi pongo il mi quesito:
    Tramite comando curl ricevo un XML che si struttura così:
    <HotelList>
    <HotelSummary id=848484>
    <hotel>prova</hotel>
    <address>via bho</address>
    <thumbNailUrl>/hotels/1000000/530000/526200/526198/526198_38_t.jpg</thumbNailUrl>
    </HotelSummary>
    <HotelSummary id=808080>
    <hotel>prova1</hotel>
    <address>via bho1</address>
    <thumbNailUrl>/hotels/1000000/530000/55800/526198/5285741785.jpg</thumbNailUrl>
    </HotelSummary>
    </HotelList>

    Ora tramite foreach come faccio a cambiare ogni <thumbNailUrl> del tipo:
    <thumbNailUrl>/hotels/1000000/530000/526200/526198/526198_38_t.jpg</thumbNailUrl>
    <thumbNailUrl>/hotels/1000000/530000/55800/526198/5285741785.jpg</thumbNailUrl>

    In <img src:$server.$thumbNailUrl>

    Ho una parte di link dall'XML e devo far uscire l'immagine, questo lo devo fare per tutta la lista però.

    Aspetto vostre illuminazioni in merito.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    6
    Seguendo dei consigli sono arrivato a scrivere:

    $serverpath = 'http://media.server.com';
    $hotel = simplexml_load_file($output);
    foreach($hotel->HotelSummary->thumbNailUrl as $key => $value)
    {
    $value = "[img]".$serverpath.$value."[/img]";
    }
    echo $hotel;

    Ma senza successo

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova così
    Codice PHP:
    $serverpath 'http://media.server.com';
    $hotel simplexml_load_file($output); //dove lo valorizzi $output?

    foreach($hotel->HotelList->HotelSummary as $key => $value) {
             
    $value "img src='" $serverpath.$value->thumbNailUrl "'";
            echo 
    "immagine $value 
    "
    ;  //non ho messo i tag html per evitare che non si veda a video quando lo testi
    }
    echo 
    $hotel
    edit: ho corretto, avevo fatto mille giri inutili... Scusa, troppa stanchezza mi ha annebbiato

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    6
    $output è l'xml di risposta del server tramite curl

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    6
    ma per riscrivere a schermo con tutta la modifica si deve fare echo $hotel?
    perche se dico echo $output mi fa uscire l'xml di base senza le modifiche, se metto echo $hotel non mi esce niente

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    facendo ordine

    $output è preso con cUrl e mi pare di capire che tu non salvi un file ma usi la stringa, quindi probabilmente devi usare simplexml_load_string(). Questo però non lo vedo come un problema grosso.

    Se fai echo $hotel hai a video tutti i dati XML, ma non ti serve a nulla.

    Se vuoi ottenere, ad esempio, la lista dei nomi degli hotel con le thumbnail, devi fare, credo una cosa di questo tipo
    Codice PHP:
    foreach($hotel->HotelList->HotelSummary as $key => $value) {
      
    $nome $value->hotel;      
      
    $thumb"[img]" $serverpath.$value->thumbNailUrl "[/img]";
      echo 
    "$nome
    "
    ;
      echo 
    "$thumb
    "



  7. #7
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    6
    Sisi, funziona, leggendo in giro però ho visto che posso sfruttare un XSLT per dare a tutto l'XML l' aspetto HTML che voglio, sto cercando di capire come inserire con simplexml la stringa dello style XSL poi scrivo quale metodo mi è risultato migliore

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.