phpInfo.netLes ArchivesLes éléPHPants

  
  Accueil
  Trucs & Astuces
  Scripts
  Regex
  Annuaire
  Articles

.
      
 Astuces   PHP  XML


Header XML[17-11-2001]
Posté par Pierre Gentile

PHP et XML ont les mêmes tags : <? ?>
Pour éviter une confusion entre les deux, et les erreurs qui en découlent, faites un echo :

<? echo "<?xml version=\"1.0\" ?>"; ?>


[2 commentaires]

Exportation d'une table vers un fichier XML[25-04-2001]
Posté par Christophe Faizant

Voici une fonction que j'ai créée, permettant de rapatrier un flux de données en provenance d'un SGBD (ici mySQL) en vue de son incorporation au sein d'un fichier XML créé automatiquement.

La fonction mysql_fetch_array doublant les éléments du tableau tel que [0]=>valeur_x et [nom_champ]=>valeur_x, une instruction « if($j%2) » permet de ne prendre qu'une correspondance par paire clé/valeur, à savoir celle qui nous intéresse, contenant le nom du champ (pour les balises du fichier xml) et sa valeur.

Les paramètres de connexion peuvent bien-sûr être passés par référence à l'aide d'une esperluette (&) si un fichier de connexion à prélalablement été inclus dans la même page.

fichier db2xml.php

<?
function db2xml($host,$user,$password,$database,$table,$xml_file)
{

$create_xml = fopen($xml_file,"w");
fwrite($create_xml,"<xml>rn<table>rn");

mysql_connect($host, $user, $password);
$req = mysql_db_query($database, "select * from $table");
while(
$row = mysql_fetch_array($req))
{
    
fwrite($create_xml,"<element>rn");
    for(
$j=0;$test=each($row);$j++)
    {
        if(
$j%2)
        {
            
fwrite($create_xml,"<$test[0]>$test[1]</$test[0]>rn");
        }
    }
    
fwrite($create_xml,"</element>rn");
}
fwrite($create_xml,"</table>rn</xml>");
fclose($create_xml);
mysql_free_result($req);
}
?>

On obtient un fichier XML portant le nom spécifié par $xml_file, et dont le contenu est similaire à l'exemple suivant (vous noterez que les noms des champs de la table source ont automatiquement été implémentés en tant que balise dans le fichier cible).

fichier table_produits.xml

<xml>
<table>

<element>
<ref>001</ref>
<nom>produit 1</nom>
<prix>195.00FF</prix>
</element>

<element>
<ref>002</ref>
<nom>produit 2</nom>
<prix>650.00FF</prix>
</element>

<element>
<ref>003</ref>
<nom>produit 3</nom>
<prix>250.00FF</prix>
</element>


</table>
</xml>


[2 commentaires]

Synseo