Ces fonctions fonctionnent grâce à » WDDX .
Pour utiliser WDDX, vous devez installer la bibliothèque EXPAT (qui est fournie avec la distribution d'Apache 1.3.7 ou plus récent).
Après avoir installé Expat, compilez PHP avec --enable-wddx .
La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.
Cette extension ne définit aucune directive de configuration.
Cette extension définit l'identifiant du paquet WDDX, retourné par la fonction wddx_packet_start() .
Cette extension ne définit aucune constante.
Notez bien que toutes les fonctions qui enregistrent des données, utilisent le premier élément d'un tableau pour savoir si ce tableau doit être enregistré sous la forme d'un tableau ou d'une structure. Si le premier élément a une clé de type chaîne, le tableau sera enregistré sous la forme d'une structure, sinon, il le sera sous la forme d'un tableau.
Exemple 2790. Enregistre une valeur simple
<?php
echo
wddx_serialize_value
(
"Exemple de paquet de PHP à WDDX"
,
"Paquet PHP"
);
?>
L'exemple ci-dessus va afficher :
<wddxPacket version='1.0'><header comment='Paquet PHP'/><data>
<string>Exemple de paquet de PHP à WDDX</string></data></wddxPacket>
Exemple 2791. Utilisation de paquets incrémentaux
<?php
$pi
=
3.1415926
;
$packet_id
=
wddx_packet_start
(
"PHP"
);
wddx_add_vars
(
$packet_id
,
"pi"
);
/* Supposons que $villes provient d'une base de données */
$villes
= array(
"Paris"
,
"Montréal"
,
"Lyon"
);
wddx_add_vars
(
$packet_id
,
"villes"
);
$packet
=
wddx_packet_end
(
$packet_id
);
echo
$packet
;
?>
L'exemple ci-dessus va afficher :
<wddxPacket version='1.0'><header comment='PHP'/><data><struct> <var name='pi'><number>3.1415926</number></var><var name='villes'> <array length='3'><string>Paris</string><string>Montréal</string> <string>Lyon</string></array></var></struct></data></wddxPacket>
Note: Si vous voulez linéariser des caractères non-ASCII, vous devez d'abord convertir vos données en UTF-8. (Voir les fonctions utf8_encode() et iconv() .)