PHP 7.2.25 Released

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_varsDeğişkenleri bir WDDX paketi olara dizgeleştirir

Açıklama

wddx_serialize_vars ( mixed $değişken [, mixed $... ] ) : string

Aktarılan değişkenlerin dizgeleştirilmiş gösterimlerini içeren bir yapı olarak bir WDDX paketi oluşturur.

Değiştirgeler

Bu işlevin alabileceği değiştirge sayısı değişkendir.

değişken

Bir değişken ismi veya değişken isimlerini veya diğer dizileri ve benzerlerini içeren bir dizi olabilir.

...

Dönen Değerler

Bir hata oluşursa FALSE yoksa bir WDDX paketi döner.

Örnekler

Örnek 1 - wddx_serialize_vars() örneği

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

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

Yukarıdaki örneğin çıktısı:

<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
16 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
17 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
17 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
17 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
18 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