info:mysql:phpcgimysql2xml

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
info:mysql:phpcgimysql2xml [2023/03/20 14:51] – supprimée - modification externe (Unknown date) 127.0.0.1info:mysql:phpcgimysql2xml [2023/03/20 14:52] (Version actuelle) – radeff
Ligne 1: Ligne 1:
 +====== phpCgiMysql2xml ======
 +utiliser un cgi php appellé depuis php+apache, marche nickel - sauf vitesse! chercher autre solution...
  
 +test.php: le fichier à appeller par http / apache
 +<code php>
 +<?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();
 +
 +?> 
 +</code>
 +
 +test4.php: le fichier php à appeller en cgi, ne pas oublier de faire un chmod 755 test4.php
 +
 +<code 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; }
 +
 +
 +?>
 +</code>
 +
 +{{tag>mysql}}