Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    [PILLOLA] - trasformare array PHP in documento XML

    Ciao a tutti ragassuoli.
    Vi posto il codice di una funzione ricorsiva che consente di trasformare un array in PHP in un documento XML mantendo anche una identazione leggibile.

    Spero possa essere considerata come pillola

    Ecco qui

    codice:
       function ArrayToXML($array, $deep = 1) {
            
            foreach ($array as $key => $value) {
            
                $indent = str_repeat("\t", $deep);
                
                if (!is_array($value)) {
                    $xmlstr .= $indent . "<". $key .">\n";
                    $xmlstr .= $indent . "\t<![CDATA[". $value ."]]>\n";
                    $xmlstr .= $indent . "</". $key .">\n";
                }
                else {
                    $currentkey = $key;
                    $xmlstr .= $indent . "<". $currentkey .">\n";
                    $xmlstr .= ArrayToXML($value, ++$deep);
                    $xmlstr .= $indent . "</". $currentkey .">\n";
                }
                
            }
            return $xmlstr;
            
        }
    
    
        echo ArrayToXML($array_qualunque);
    spero possa tornarvi utile...
    P.s. Se volete vedere l'output o fate stampare il risultato dentro una textarea oppure inviate un header(Content-type: text/xml)... ok??

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non è mica lucchettata la discussione...
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    dovresti commentarla un po giusto per sapere nel dettaglio cosa fa lo script...
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    eseguila semplicemente passando un array alla funzione.
    Non credo che la quantità di codice richieda commenti.

    Cmq il codice esegue una scansione ricorsiva sull'array passato come argomento. Se ad un generico passo n della funzione il valore esaminato non è un array, la funzione concatena il valore stesso in un blocco CDATA, altrimenti viene chiamata ricorsivamente la funzione.

    Per esempio... passate questo array

    codice:
    <? php
            $x = 5; $y = 6;
            $res["numero1"] = $x;
            $res["numero2"] = $y;
            $res["operazioni"] = array("somma"=>$x + $y, "moltiplicazione"=>$x * $y);
    ?>
          
    <textarea><?php echo ArrayToXML($res); ?></textarea>
    e notate l'annidamento dei vari elementi
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Può darsi che questa funzione è utile pure per creare un xml con dei dati estratti da MySQL? E, quindi, utile per fare un backup di una tabella?

  6. #6
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Non credo che la sua intenzione fosse quella... e poi che c'è di meglio di mysql_dump?

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    In effetti potrebbe essere usata per trasformare i dati di una tabella SQL in un array. Dall'array ottieni un XML e a questo associ un file XSL et voilà... mandi in output il contenuto della tabella.

    Comunque è una funzione che ho scritto perchè sto facendo una classe PHP per AJAX e mi torna molto comoda per passare il valore di ritorno della funzione chiamata in remoto.

    Ci sono molte possibilità di utilizzo... usate solo la vostra fantasia.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    infatti la mia era solo un'osservazione, visto che estraendo i dati da un db abbiamo a disposizione un'array.

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Up!
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.