mysql2xml
<?php /* SCRIPT PERMETTANT DE CONVERTIR UNE TABLE MYSQL EN FICHIER XML SANS PRECISER LES CHAMPS */ // INFOS DE CONNEXION A LA BDD $Sbddhost = 'localhost'; $Sbdduser = 'xxx'; $Sbddpass = 'xxx'; $Sbddbase = 'xxx'; $Sbdderreur = 'La base est inaccessible.'; #$Sbddtable = 'chronologie'; // TABLE A CONVERTIR $Sbddtable = 'chronologie'; // TABLE A CONVERTIR $Sdatalimit = 0; // LIMIT DE DONNEES A CONVERTIR ( 0 = toutes ) // DEFINIR L'ORDRE DE LECTURE (NECCESSITE DE CONNAITRE LE CHAMPS DE REFERENCE) // LAISSER VIDE SI AUCUN ORDRE A DEFNIR $dataorder = ''; // EX: ID DESC $filename = 'fichier.xml'; // REPERTOIRE ET NOM DU FICHIER $fileerreur = 'Le fichier ne peut être créé vérifier les droits du répertoire'; // CONNEXION ET LECTURE TABLE if(!$mysql_link = @mysql_connect($Sbddhost,$Sbdduser,$Sbddpass)) { echo $Sbdderreur; exit; } $sql = "SELECT * FROM $Sbddbase.$Sbddtable"; if(!empty($dataorder)) $sql .= " ORDER BY $dataorder"; if($Sdatalimit >= 1) $sql .= " LIMIT $Sdatalimit"; $req = mysql_query($sql,$mysql_link); $req2 = mysql_query($sql,$mysql_link); mysql_close($mysql_link); // FERME LA CONNEXION DBB // CONVERSION $file = '<?xml version="1.0" encoding="iso-8859-15"?><rss version="2.0"><channel>'; while($row = mysql_fetch_row($req)) { $file .= '<item>'; $i = 0; foreach($row as $r){ $r=trim($r); $r=html_entity_decode($r); $r=htmlspecialchars_decode($r); $file .= '<##'.$i.'##>'.trim($r).'</##'.$i.'##>'; // CREATION DE TAGS ++$i; } $file .= '</item>'; } $file .= '</channel></rss>'; $i = 0; while($field = mysql_fetch_field($req2)) { $file = ereg_replace("##$i##",$field->name,$file); // REMPLACE LES TAGS ++$i; } // CREATION DU FICHIER if($fp = @fopen($filename,"w")){ fputs($fp,$file); fclose($fp); echo '<a href='.$filename.'>Afficher '.$filename.'</a>'; }else{ echo $fileerreur; } ?>
mysqldump2xml
utiliser mysqldump pour générer du xml à partir d'une base MySQL; défaut: c'est pas du xml standard
<?php $dbUser = 'xxx'; // db User $dbPass = 'xxx'; // db User Password $dbName = 'xxx'; // db name $dest = './backup'; // Path to directory class MySQLDump { /** * The backup command to execute * @private * @var string */ var $cmd; /** * MySQLDump constructor * @param string dbUser (MySQL User Name) * @param string dbPass (MySQL User Password) * @param string dbName (Database to select) * @param string dest (Full destination directory path for backup file) * @access public */ function MySQLDump ($dbUser,$dbPass,$dbName,$dest) { $fname = $dbName.'.xml'; $this->cmd='mysqldump -X -u'.$dbUser.' -p'.$dbPass.' '.$dbName. ' >'.$dest.'/'.$fname; } /** * Runs the constructed command * @access public * @return void */ function backup () { system ($this->cmd, $error); if($error) trigger_error ('Backup failed: '.$error); } } // Instantiate MySQLDump $mysqlDump = new MySQLDump($dbUser, $dbPass, $dbName, $dest); // Perform the backup $mysqlDump->backup(); ?>