Devshed: Data Exchange With XML, WDDX And PHP
Par Auteur INTERNE, jeudi 27 septembre 2001 à 18:48 :: Lu sur le Web :: #578 :: rss
Je vous vois perplexes rien qu'au titre de cet article avec ces mots qui cartonneraient rien qu'à être étalés sur un plateau de Scrabble.
On va donc traduire gentiment : Echange de données avec XML, WDDX et PHP.
Pour ceux qui ne saisissent pas encore le propos, je conseille de lire l'article de Vikram Vaswani qui explique d'une façon très simple et didactique comment transmettre des données entre applications Web.
WDDX (Web Distributed Data eXchange) est un mécanisme qui formate les structures de données, que ce soit des tableaux, des entiers, des chaînes de caractères sous une syntaxe XML. PHP génère une sortie XML-WDDX et interprète ce flux en bout de chaîne pour récupérer ces données transmise par HTTP ou FTP.
Pour faire fonctionner le support WDDX, il vous faut une version de PHP supérieur ou égale à la 3.0.7. Ce support est disponible depuis toujours dans PHP4.
Coté installation il vous faudra la librairie expat (intégrée à Apache 1.3.7 et +) et surtout recompiler PHP avec les options --with-xml et --enable-wddx.
Pour vérifier si cela fonctionne sur votre configuration, un petit phpinfo() s'impose.
Exemple :
Imaginez plutôt un script qui fonctionne sur la machine A et fait un traitement spécifique. Il renvoit le résultat d'un calcul savant sous la forme d'un tableau de valeurs. La machine B utilise un tableau de valeurs issu de la machine A pour réaliser l'affichage de ces valeurs.
Le script de la machine A utilise la fonction wddx_serialize_value() pour formater le tableau en WDDX.
<?php $mes_resultat = array(12,54,87,68,0.52,158,54242.12,48996,14.256); $paquet_wddx = wddx_serialize_value($mes_resultat, "Résultats du 27/09/2001"); ?>Notre paquet WDDX contient ceci :
<wddxPacket version='1.0'> <header> <comment>Résultats du 27/09/2001</comment> </header> <data> <array length='9'> <number>12</number> <number>54</number> <number>87</number> <number>68</number> <number>0.52</number> <number>158</number> <number>54242.12</number> <number>48996</number> <number>14.256</number> </array> </data> </wddxPacket>Le script de la machine B utilise la fonction wddx_deserialize() pour récupérer le tableau issu du transfert WDDX et les affiche succinctement :
<?php
// url du script de la machine A
$url = "http://machineA/resultatswddx.php";
// Lecture du paquet wddx
$paquet_wddx = join ('', file($url));
// deserialize
$resultats_wddx = wddx_deserialize($paquet_wddx);
// affichage très limité
while(list(,$val)=each($resultats_wddx))
{
print "$val<br>\n";
}
?>
WDDX ouvre des perspectives intéressantes pour transmettre des données en temps réel, que ce soient des informations boursières, météo ... Ce système facilitera la vie à beaucoup de fournisseurs de contenus.Article sur DevShed
Autre article sur phpBuilder







Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.