wddx_serialize_vars

(PHP 4, PHP 5)

wddx_serialize_varsEnregistre plusieurs valeurs dans un paquet WDDX

Description

string wddx_serialize_vars ( mixed $var_name [, mixed $... ] )

Sert à créer un paquet WDDX avec une structure qui contient la représentation des variables passées en arguments.

Liste de paramètres

Cette fonction prend un nombre variable de paramètres.

var_name

Peut être soit une chaîne de caractères nommant une variable ou un tableau contenant des noms de variables ou d'autres tableaux, etc..

...

Valeurs de retour

Retourne le paquet WDDX, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec wddx_serialize_vars()

<?php
$a 
1;
$b 5.5;
$c = array("blue""orange""violet");
$d "colors";

$clvars = array("c""d");
echo 
wddx_serialize_vars("a""b"$clvars);
?>

L'exemple ci-dessus va afficher :

<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>

add a note add a note

User Contributed Notes 5 notes

up
0
kangus at jaga dot us
10 years ago
A function to use for dates with PHP & WDDX
getdate()

$ta="<FORM><TEXTAREA rows=15 cols=80>" ;
$te="</TEXTAREA></FORM>";
$packet_id=wddx_packet_start("Date Example--");
$myDate=getdate();
wddx_add_vars($packet_id,'myDate');
$package=wddx_packet_end($packet_id);
print($ta.$package.$te);

Produces:

<wddxPacket version='1.0'><header><comment>Date Example--</comment></header>
<data><struct><var name='myDate'>
<struct><var name='seconds'><number>12</number></var>
<var name='minutes'><number>55</number></var>
<var name='hours'><number>1</number></var>
<var name='mday'><number>13</number></var>
<var name='wday'><number>1</number></var>
<var name='mon'><number>10</number></var>
<var name='year'><number>2003</number></var>
<var name='yday'><number>285</number></var>
<var name='weekday'><string>Monday</string></var>
<var name='month'><string>October</string></var>
<var name='0'><number>1066031712</number>
</var></struct></var></struct></data></wddxPacket>
up
0
tychay at alumni dot caltech dot edu
12 years ago
The above feature will cause a slight trouble since the name of the variable will always be "wddxtemp" but you can use preg_replace to fix that.

Also, a better approach is to serialize the entire class. WDDX will that write a reserved "php_class_name" variable which can be used to reconstruct the class during a deserialize.
up
0
tychay at alumni dot caltech dot edu
12 years ago
You can use globals to get around the above in classes:

<?php
class Test
{
  var
$str;
  var
$wddx;

  function
Test()
  {
   
$this->str = "test";
   
$this->wddx_serialize($this->str);
   
header('Content-Type: text/xml');
    echo (
$this->wddx);
  }
 
  function
wddx_serialize($var) {
    global
$wddxtemp;
    unset(
$wddxtemp);
   
$wddxtemp = $var;
   
$this->wddx = wddx_serialize_vars("wddxtemp");
  }
}

new
Test();
?>
-terry
up
0
tychay at alumni dot caltech dot edu
12 years ago
You can use globals to get around the above in classes:

<?php
class Test
{
  var
$str;
  var
$wddx;

  function
Test()
  {
   
$this->str = "test";
   
$this->wddx_serialize($this->str);
   
header('Content-Type: text/xml');
    echo (
$this->wddx);
  }
 
  function
wddx_serialize($var) {
    global
$wddxtemp;
    unset(
$wddxtemp);
   
$wddxtemp = $var;
   
$this->wddx = wddx_serialize_vars("wddxtemp");
  }
}

new
Test();
?>
-terry
up
0
christian dot knoflach at gmx dot at
13 years ago
Be careful using WDDX - functions on object variables. As I just had to find out the following won't work:

<?php
class Test
{
  var
$str;
  var
$wddx;

  function
Test()
  {
   
$this->str = "test";
   
$this->wddx = wddx_serialize_vars("this->str");
    print(
htmlentities($this->wddx));
  }
}

new
Test();
?>

That's what you'll get:
<wddxPacket version='1.0'><header/><data><struct></struct></data></wddxPacket>
To Top