phpCgiMysql2xml
utiliser un cgi php appellé depuis php+apache, marche nickel - sauf vitesse! chercher autre solution…
test.php: le fichier à appeller par http / apache
<?php $dest = './backup'; // Path to directory class MySQLDump { /** * The backup command to execute * @private * @var string */ var $cmd; /** * MySQLDump constructor * @param string dest (Full destination directory path for backup file) * @access public */ function MySQLDump ($dest) { $this->cmd='./test4.php'; } /** * 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($dest); // Perform the backup $mysqlDump->backup(); ?>
test4.php: le fichier php à appeller en cgi, ne pas oublier de faire un chmod 755 test4.php
#! /usr/bin/php <?php /* SCRIPT PERMETTANT DE CONVERTIR UNE TABLE MYSQL EN FICHIER XML SANS PRECISER LES CHAMPS source: http://www.phpcs.com/codes/CONVERTIR-RAPIDEMENT-TABLE-MYSQL-FICHIER-XML-SANS-PRECISER_37647.aspx modified: --- //[[fradeff@akademia.ch|Fred Radeff]] 2008/08/11 22:38// */ // INFOS DE CONNEXION A LA BDD $Sbddhost = 'localhost'; $Sbdduser = 'xxx'; $Sbddpass = 'xxx'; $Sbddbase = 'xxx'; $Sbdderreur = 'La base est inaccessible.'; $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; } ?>