source: http://www.phpcs.com/codes/CONVERTIR-RAPIDEMENT-TABLE-MYSQL-FICHIER-XML-SANS-PRECISER_37647.aspx

<?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; }
 
 
?>
  • info/mysql2xml.txt
  • Dernière modification: 2018/07/18 09:46
  • par radeff