- Home
- Categorie
- Coding e Sistemistica
- Coding
- Esportazione di dati in XML
-
Esportazione di dati in XML
Ragazzi, per necessità devo generare un file xml con php secondo questo modello
<?xml version="1.0" encoding="utf-8"?> <immagini> <immagine indirizzo="1.jpg" infos="Questa è la prima immagine"/> <immagine indirizzo="2.jpg" infos="Questa è la seconda immagine"/> <immagine indirizzo="3.jpg" infos="Questa è la terza immagine"/> </immagini>
In pratica lo script che ho in mente mi estrae dal database gli avatar degli utenti che vengono immessi in un ciclo while che dovrebbe ricreare il file xml di esempio, ma visto che è la prima volta che utilizzo le estensioni DOM non riesco a creare il nodo
Ecco quello che ho fatto fino ad ora
[PHP]<?php
include('config.php');
function get_user_avatar($avatar, $avatar_type, $user_posts)
{
if (empty($avatar) || !$avatar_type)
{
return '';
}
$avatar_img = '';
switch ($avatar_type)
{
case 1:
$avatar_img = "forum/download/file.php?avatar=";
break;
case 3:
$avatar_img = "forum/images/avatars/gallery" . '/';
break;
}
$avatar_img .= $avatar;
return '<immagine indirizzo="' . $avatar_img . '" infos="' . $user_posts . '" />';
}
$sql = "SELECT user_id, username, user_posts, user_colour, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height
FROM phpbb3_users
ORDER BY user_posts DESC
LIMIT 0, 10" ;
if($result = mysql_query($sql))
{
$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->add_root('immagini');
while($row = mysql_fetch_array($sql))
{
$thumb = get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_posts']);
}$dom->save("result.xml");
}
?>[/PHP]
Mi date una mano ?
-
Perchè vuoi usare DOM?
Ti basta ricreare una stringa con l'XML e poi salvare il file (es. file_put_contents()), molto più facile e veloce.
-
mica ti ho capito.. mi puoi fare un esempio volante :bho:
-
Guarda questo codice:
[PHP]<?php
$images = array();
$images[] = array('address' => '1.jpg', 'info' => 'Questa è la prima immagine');
$images[] = array('address' => '2.jpg', 'info' => 'Questa è la seconda immagine');
$images[] = array('address' => '3.jpg', 'info' => 'Questa è la terza immagine');$xml = '<?xml version="1.0" encoding="utf-8"?' . ">\r\n";
$xml .= "<immagini>\r\n";
foreach($images as $image) {
$xml .='<immagine indirizzo="' . $image['address'] . '" infos="' . $image['info'] . '" />' . "\r\n";
}
$xml .= '</immagini>';file_put_contents('results.xml', $xml);
?>[/PHP]
-
perfetto, grazie per avermi fatto conoscere questa funzione