IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Générateur XML


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut Générateur XML
    hello a tous,

    j'ai un problème pour generer un fichier xml en php:
    voici ce que j'aimerais faire:
    un fichier xml qui devra ressembler a ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?xml version="1.0" encoding="UTF-8"?>
    <IMAGES>
    <IMG lien="index.php?xx" cible="_self" urlimage_min="anims/enavant/mini_pics_05.jpg" urlimage_grand="anims/enavant/pics_05.jpg"/>
     
    </IMAGES>
    j'ai ecrit une page xml.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    <?php 
    //require("connect_db_code.php");
     
    //Fichier XML de destination
    $fichierXML = "../../anims/enavant.xml";
    //Initialise le compteur à 0
    $compteur = 0;
    //Répertoire des images à lister
    $rep = '../../enavant/img';
    //Arborescence
    $list = array('.','..');
     
     
    //********************on reupere les liens*************************************//
    $liens = "SELECT * FROM {$table_enavant}   ";
    	$liens=stripSlashes($liens);
    	$liens = mysql_query($liens) or die ("Err n°51-20 ");
    	//while($liens<$lien){};
     
    //***********************on recupere la cible*********************************//
    $cibles = "SELECT * FROM {$table_enavant}  ";
    	$cibles=stripSlashes($cibles);
    	$cible = mysql_query($cibles) or die ("Err n°51-200 ");
     
    //*************************on recupere les images*******************************//
    /*$img_petite="select * from {$table_envant}";
    	$img_petite=stripSlashes($img_petite);
    	$img_petite= mysql_query($img_petite) or die ("ERR n°51-2000");
    	
    	
    $img_grande="select * from {$table_enavant}";
    	$img_grande=stripslashes($img_grande);
    	$img_grande= mysql_query($img_grande) or die ("ERR n°51-200000");
    
    /*************************************************************************/
      // l'en-tête du fichier*/
    /*	$fichier="<?php\n";
    	$fichier.="\n";
    	
    	
    	$liens.="\$liste_liens=array()\n";
    	//$fichier.="\$liste_url=array()\n";
    	$cible.="\$liste_cible=array()\n";
    	$image_petite.="\$liste_ImagePetite=array()\n";
    	$image_grande.="\$liste_ImageGrande=array()\n";
    	$fichier.="\n";
    	$fichier.="\n";
    	
    	// la requête pour récupérer la liste des variables afin de genere le fichier xml :)
    	$req="SELECT * FROM {$table_enavant}  ";
    	$req=stripSlashes($req);
    	$result = mysql_query($req) or die ("Err n°51-20 ");
    	
    	// on procède au listing 
    	for ($i = 0; $i < mysql_num_rows($result); $i++) {
    	    $tbl_ligne = mysql_fetch_row($result);
    		$liens.="\$liste_liens[" . $i . "]=\"" . $tbl_ligne[4] . "\";";
    		$cible.="\$liste_cible[" . $i . "]=\"" . addslashes($tbl_ligne[4]) . "\";";
    		$image_petite.="\$liste_ImagePetite[" . $i . "]=\"" . $tbl_ligne[5] . "\";";
    		$image_grande.="\$liste_ImageGrande[" . $i . "]=\"" . $tbl_ligne[5] . "\";";
    		$fichier.="\n";
    		$fichier.="\n";
    	}
    	$fichier.="?>";
     
    /*****************************************************************************/
    //
     
     
    //Fonction de listage du répertoire------------------------
    function listFolder($dest_files) {
        GLOBAL $list;
        $dossier=opendir($dest_files);
        while ($fichier = readdir($dossier)) {
            if (!in_array($fichier, $list)){
                //On incrémente de +1 à chaque fois,
                //ce qui correspond au numéro de l'image
                //dans le fichier XML généré.
                $compteur++;
                //C'est la variable qui contient le résultat
                //ce qui va contenir dans la variable
               //
     
                $eaa.=("<?xml version=1.0 encoding=UTF-8?>\n");/-/
                $eaa.=("<IMAGES>\n");
                $e.=("<IMG liens='$liens' cible='$cible' urlimage_min='$image_petite' urlimage_grand='$image_grande' />\n");
                $eaa.=("</IMAGES>\n");
                //$e.=("<IMAGES><image num='$compteur' fichier='$fichier' desc='$fichier' />");
                //$e.=("<image num='$compteur' fichier='$fichier' desc='$fichier' />");
            }
    	    }
     
    	//variable retournée par la fonction
    	    return $e;
    	}
     
    	//On récupère le résultat de la fonction dans une variable
    	$dynamic_content = listFolder($rep);
     
    	//On ouvre le fichier en mode écriture
    	$openfichier = fopen($fichierXML,"w");
    	//Entête du fichier XML
    	fwrite($openfichier,"");
     
    	//Balise d'ouverture
    	fwrite($openfichier,"");
     
    	//On remplit le fichier avec le résultat retourné par la fonction
    	fwrite($openfichier,$dynamic_content);
     
    	//Balise de fermeture
    	fwrite($openfichier,"");
     
    	//On ferme le fichier
    fclose($openfichier); 
     
    //echo "le fichier est genere avec succes ;)";
     
    ?>
    lors de la generation ca donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <IMG liens='' cible='' urlimage_min='' urlimage_grand='' />
    <IMG liens='' cible='' urlimage_min='' urlimage_grand='' />
    <IMG liens='' cible='' urlimage_min='' urlimage_grand='' />
    <IMG liens='' cible='' urlimage_min='' urlimage_grand='' />
    <IMG liens='' cible='' urlimage_min='' urlimage_grand='' />
    si quelqu'un savais comment faire, je le remercierai beaucoup de m'aidé
    merci

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    <?php 
    //require("connect_db_code.php");
     
    //Fichier XML de destination
    $fichierXML = "../../anims/enavant.xml";
    //Initialise le compteur à 0
    $compteur = 0;
    //Répertoire des images à lister
    $rep = '../../enavant/img';
    //Arborescence
    $list = array('.','..');
     
     
    //********************on reupere les liens*************************************//
    $liens = "SELECT * FROM {$table_enavant}   ";
    	$liens=stripSlashes($liens);
    	$liens = mysql_query($liens) or die ("Err n°51-20 ");
    	//while($liens<$lien){};
     
    //***********************on recupere la cible*********************************//
    $cibles = "SELECT * FROM {$table_enavant}  ";
    	$cibles=stripSlashes($cibles);
    	$cible = mysql_query($cibles) or die ("Err n°51-200 ");
     
    //*************************on recupere les images*******************************//
    /*$img_petite="select * from {$table_envant}";
    	$img_petite=stripSlashes($img_petite);
    	$img_petite= mysql_query($img_petite) or die ("ERR n°51-2000");
    	
    	
    $img_grande="select * from {$table_enavant}";
    	$img_grande=stripslashes($img_grande);
    	$img_grande= mysql_query($img_grande) or die ("ERR n°51-200000");
     
    /*************************************************************************/
      // l'en-tête du fichier*/
    /*	$fichier="<?php\n";
    	$fichier.="\n";
    	
    	
    	$liens.="\$liste_liens=array()\n";
    	//$fichier.="\$liste_url=array()\n";
    	$cible.="\$liste_cible=array()\n";
    	$image_petite.="\$liste_ImagePetite=array()\n";
    	$image_grande.="\$liste_ImageGrande=array()\n";
    	$fichier.="\n";
    	$fichier.="\n";
    	
    	// la requête pour récupérer la liste des variables afin de genere le fichier xml :)
    	$req="SELECT * FROM {$table_enavant}  ";
    	$req=stripSlashes($req);
    	$result = mysql_query($req) or die ("Err n°51-20 ");
    	
    	// on procède au listing 
    	for ($i = 0; $i < mysql_num_rows($result); $i++) {
    	    $tbl_ligne = mysql_fetch_row($result);
    		$liens.="\$liste_liens[" . $i . "]=\"" . $tbl_ligne[4] . "\";";
    		$cible.="\$liste_cible[" . $i . "]=\"" . addslashes($tbl_ligne[4]) . "\";";
    		$image_petite.="\$liste_ImagePetite[" . $i . "]=\"" . $tbl_ligne[5] . "\";";
    		$image_grande.="\$liste_ImageGrande[" . $i . "]=\"" . $tbl_ligne[5] . "\";";
    		$fichier.="\n";
    		$fichier.="\n";
    	}
    	$fichier.="?>";
     
    /*****************************************************************************/
    //
     
     
    //Fonction de listage du répertoire------------------------
    function listFolder($dest_files) {
        GLOBAL $list;
        $dossier=opendir($dest_files);
        $e.="<?xml version=1.0 encoding=UTF-8?>\n";/-/
        while ($fichier = readdir($dossier)) {
            if (!in_array($fichier, $list)){
                //On incrémente de +1 à chaque fois,
                //ce qui correspond au numéro de l'image
                //dans le fichier XML généré.
                $compteur++;
                //C'est la variable qui contient le résultat
                //ce qui va contenir dans la variable
               //
     
                $e.="<IMAGES>\n";
                $e.="<IMG liens='$liens' cible='$cible' urlimage_min='$image_petite' urlimage_grand='$image_grande' />\n";
                $e.="</IMAGES>\n";
                //$e.="<IMAGES><image num='$compteur' fichier='$fichier' desc='$fichier' />");
                //$e.="<image num='$compteur' fichier='$fichier' desc='$fichier' />";
            }
    	    }
     
    	//variable retournée par la fonction
    	    return $e;
    	}
     
    	//On récupère le résultat de la fonction dans une variable
    	$dynamic_content = listFolder($rep);
     
    	//On ouvre le fichier en mode écriture
    	$openfichier = fopen($fichierXML,"w");
    	//Entête du fichier XML
    	fwrite($openfichier,"");
     
    	//Balise d'ouverture
    	fwrite($openfichier,"");
     
    	//On remplit le fichier avec le résultat retourné par la fonction
    	fwrite($openfichier,$dynamic_content);
     
    	//Balise de fermeture
    	fwrite($openfichier,"");
     
    	//On ferme le fichier
    fclose($openfichier); 
     
    //echo "le fichier est genere avec succes ;)";
     
    ?>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    Bonjour,

    Merci de ta réponse,
    Mon problème persiste, voici les problème donc je n'arrive pas à résoudre:

    - le script me permet bien de généré un fichier xml venant d'une base de donnée mais boucle à plusieurs reprise soit la même chose plusieurs fois.
    - le dernier resultat n'ai pas pris en compte dans le fichier xml généré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <?php 
    //on ce connecte a la base de donnée
    require("connect_db_code.php");
     
    //Fichier XML de destination
    $fichierXML = "../../anims/enavant.xml";
    //Initialise le compteur à 0
    $compteur = 0;
    //Répertoire des images à lister
    $rep = '../../enavant/img';
    //Arborescence
    $list = array('.','..');
     
    //Fonction de listage du répertoire------------------------
    function listFolder($dest_files) {
        GLOBAL $list;
        $dossier=opendir($dest_files);
        while ($fichier = readdir($dossier)) {
            if (!in_array($fichier, $list)){
                //Onmysql_ incrémente de +1 à chaque fois,
                //ce qui correspond au numéro de l'image
                //dans le fichier XML généré.
                 $compteur++;
                //C'est la variable qui contient le résultat
                //ce qui va contenir dans la variable
               //
     
     
               	$e.=("<?xml version=1.0 encoding=UTF-8?>\n");
                $e.=("<IMAGES>\n");
                $sql= "select * from .$table_enavant";
                $reponse=mysql_query($sql) or die("err serv");
                $liens=mysql_num_rows($reponse) or die( "err");
                while($row=mysql_fetch_array($reponse)){
                if ($row["lien"]) {
                	if ($row["target"]) {
                		if ($row["img_petite"]) {
                			if ($row["img_grande"]) {
     
                $e.=("<IMG lien='$row[lien]' cible='$row[target]' urlimage_min='$row[img_petite]' urlimage_grand='$row[img_grande]' />\n");
                		}
                		}
                		}
               			}
             			}
     
                $e.=("</IMAGES>\n");
     
                }
    	    }
     
    	//variable retournée par la fonction
    	    return $e;
    }
     
    //On récupère le résultat de la fonction dans une variable
    	$dynamic_content = listFolder($rep);
    	//On ouvre le fichier en mode écriture
    	$openfichier = fopen($fichierXML,"r+");
    	//Entête du fichier XML
    	fwrite($openfichier,"");
    	//Balise d'ouverture
    	fwrite($openfichier,"");
    	//On remplit le fichier avec le résultat retourné par la fonction
    	fwrite($openfichier,$dynamic_content);
    	//Balise de fermeture
    	fwrite($openfichier,"");
    	//On ferme le fichier
    	fclose($openfichier); 
     
     
    	echo "le fichier est genere avec succes ;)";
    ?>
    Je ne vois pas comment résoudre ces problématique, soit afficher une seule fois le contenu de la bdd dans un fichier xml et la dernière ligne soit affiché.
    merci d'avance, pour ceux qui m'aideront.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Générateur xml avec erreur
    Par newbie75 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/05/2011, 16h59
  2. Générateur XML - PHP
    Par ooopsinet dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 20/01/2011, 17h49
  3. types des générateur xml
    Par tunnour dans le forum APIs
    Réponses: 5
    Dernier message: 29/01/2007, 14h48
  4. Réponses: 4
    Dernier message: 09/02/2006, 12h02
  5. fichier XML pour configurer un générateur de docs XML
    Par nice dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 31/01/2006, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo