PHP 8.3.4 Released!

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_varsSerialisiert Variablen in ein WDDX-Paket

Warnung

Diese Funktion wurde in PHP 7.4.0 ENTFERNT.

Beschreibung

wddx_serialize_vars(mixed $var_name, mixed ...$var_names): string

Erzeugt ein WDDX-Paket mit einer Struktur, die die serialisierte Darstellung der übergebenen Variablen enthält.

Parameter-Liste

Diese Funktion nimmt eine variable Anzahl von Parametern entgegen.

var_name

Entweder einzelne Variablennamen oder Arrays mit Variablennamen bzw. weitere Arrays.

var_names

Rückgabewerte

Gibt das WDDX-Paket zurück, oder im Fehlerfall false.

Beispiele

Beispiel #1 wddx_serialize_vars()-Beispiel

<?php
$a
= 1;
$b = 5.5;
$c = array("Blau", "Orange", "Lila");
$d = "Farben";

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<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>Blau</string><string>Orange</string><string>Lilal</string></array></var>
<var name='d'><string>Farben</string></var></struct></data></wddxPacket>

add a note

User Contributed Notes 5 notes

up
2
kangus at jaga dot us
20 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
2
tychay at alumni dot caltech dot edu
21 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
2
tychay at alumni dot caltech dot edu
21 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
21 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
22 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