Vedo ora il tuo codice grazie agenti, dopo lo studio.
per ora ho usato un sistema terra terra.
Concludendo.
Ieri ho provato qualche classe di conversione array->XML ma non funzionano con il mio array perchè ha al suo interno oggetti SimpleXmlElement contenenti i dati di ogni elemento <foto>.
Queste classi si potrebbero usare, come dice giustamente Agenti, trasformando l'XML in array con la classe (senza usare SimpleXML) per poi riconvertirli in XML sempre con la stessa classe.
Per chi vuole usare SimpleXML può fare così (sarà grezzo ma è efficace):
Per ricostruire il file io ho usato solo i "valori" ed ho aggiunto a mano i tag <foto><ord><descrizione>....codice:<?php $filexml='prova.xml'; $xml = simplexml_load_file($filexml); #echo $xml->asXML();//verifica foreach($xml->foto as $foto){ $foto_arr[]=$foto; $ord[]=$foto->ord; $permesso[]=$foto->permesso; $descrizione[]=$foto->descrizione; $url[]=$foto->url; $dimensioni[]=$foto->dimensioni; } array_multisort($ord,SORT_ASC,SORT_NUMERIC, $permesso,SORT_ASC,SORT_NUMERIC, $foto_arr); #POSSO USARE L'ARRAY DIRETTAMENTE... #Per esempio stampo tutti i dati e le foto con links $n=count($foto_arr); #decommentre le righe sotto se si vuole usare // for($i=0;$i<$n;$i++) // { // echo '<div class="cont_foto">Ord :'.$foto_arr[$i]->ord." \n ".'Descrizione :'.$foto_arr[$i]->descrizione." \n ".'Permesso :'.$foto_arr[$i]->permesso." \n ".'[img]'.$foto_arr[$i]->url.'[/img]descrizione.'" height="100px" />'." \n ".'Dimensioni :'.$foto_arr[$i]->Dimensioni."</div>\n "; // } #...OPPURE RICREARE IL FILE XML... $string_foto="<?xml version=\"1.0\"?>\n";//semmai aggiungete il formato di codifica ISO-8859-1 o UTF-8 $string_foto.="<root>\n"; for($i=0;$i<$n;$i++) { $string_foto.="\t<foto>\n"; $string_foto.="\t\t<ord>".$foto_arr[$i]->ord."</ord>\n"; $string_foto.="\t\t<descrizione>".$foto_arr[$i]->descrizione."</descrizione>\n"; $string_foto.="\t\t<url>".$foto_arr[$i]->url."</url>\n"; $string_foto.="\t\t<permesso>".$foto_arr[$i]->permesso."</permesso>\n"; $string_foto.="\t\t<dimensioni>".$foto_arr[$i]->dimensioni."</dimensioni>\n"; $string_foto.="\t</foto>\n"; } $string_foto.="</root>"; //VERIFICA struttura che sarà del file xml #echo '<pre>'; #echo htmlspecialchars($string_foto); #echo '<pre>'; #...E SCRIVERLO! if(file_put_contents ( $filexml, $string_foto ))echo "Il file XML è stato scritto correttamente : )"; else echo "Non è stato possibile scrivere il file XML : )"; ?>
si potrebbe fare una funzione più generica usando anche le "chiavi", che sono appunto: ['foto']['ord'][descrizione]...
considerando un parametro per il nodo radice che in ogni modo andrà passato alla funzione.
Oppure si potrebbe usare DOM ma credo che convenga solo per strutture XML più comlesse.
Spero che possa interessare a qulcuno!
DIMENTICAVO!...
Non c'entra niente con l'XML! Esiste un sistema per recuperare width e heigh da un file .png, .jpg o .gif?
Visto che dal codice per l'upload delle foto recupero le dimensioni in byte con $_FILES['userfile']['size'] sarebbe comodo recuperare anche le dimensioni in pixel.
Meglio se apro una nuova discussione?
Grazie!

Rispondi quotando