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]
|
|
|