WDDX
Комплексная обработка данных
🕛 01.11.2006, 15:32
Данная группа функций позволяет работать с данными в формате WDDX (http://www.wddx.org/). WDDX (Web Distributed Data Exchange) - это технология для «Распределенного обмена данными в web». Этот формат (производный от XML) предназначен для переноса данных из одной системы в другую (например, обмена данными между ASP, Perl, ColdFusion и PHP). Он позволяет сохранять не только значения, но и типы, и структуру сложных данных. Поэтому данные WDDX, сериализированные в одной системе, могут использоваться в другой. Тип данных определяется автоматически и приводится к одному из следующих: null - пустые значения;
bool - булевские значения;
number - числа (целые и дробные не различаются);
string - строки;
dateTime - значения даты и времени;
array - нумерованные массивы;
struct - ассоциативные массивы;
recordset - наборы записей (подобие таблиц);
binary - двоичные данные (в кодировке Base64).
В отличие от стандартных средств сериализации РНР данные функции используют формат, поддерживаемый большинством программных сред.
<?php $pi = 3.1415926.
Spacketjd = wddx_packet_start("Комментарий пакета"):
wddx_add_vars($packet_id. "pi");
/* допустим Scities получено из БД
*/ Scities = arrayt"Austin". "Seattle");
wddx_add_vars($packet_id, "cities");
print Spacket = wddx_packet_end($packet_id); ?>
Пример выведет:
<wddxPacket version='1.0'><header comnent='Комментарий пакета'/>
<data><struct><var name='pi'><number>3.1415926</number>
</var> <var name='cities'xarra.y 1 ength='2' >
<string>Austin</string<str1ng>Seattle</stnng>
</array> </var></btruct></data></wddxPacket>
wddx_serialize_value
Занесение одного значения в пакет WDDX
string wddx_serialize_value (mixed var [, string comment])
Создает пакет WDDX из значения одной переменной var, добавляя в заголовок пакета комментарий comment, и возвращает полученный пакет.
<?php print wddx_senalize_valueC"WDDX
packet example". "PHP packet"); ?>
Пример выведет:
<wddxPacket version='1.0'><header comment''PHP packet'/>
<data> <stnng>WDDX packet example</stnng></data>
</wddxPacket>
wddx_serialize_vars
Создание пакета WDDX из нескольких значений
string wddx_serialize_vars (mixed varjiame [. mixed ...])
<?php $a = 1; $b - 5.5; $c = arrayC'blue". "orange", "violet"):
$d = "colors"; $clvars = arrayC'c". "d")-.
print wddx_serialize_vars("a". "b", Sclvars); ?>
Пример выведет:
<wddxPacket version= '1.0'><header/><data><st.ruct>
<va г name='a'><number>l</number></va r>
<vdr name='b'><number>5 5</number></var>
<var name='c'><array length='3'><string>blue
</string> <string>orange</string><stnng>violet</stnng>
</array></var> <var name='d'><stnng>colors</string>
</var> </struct></<jata></wddxPacket>
wddx_packet_start
Начало нового пакета WDDX
int wddx_packet_start ([string comment])
Используется для начального создания пакета WDDX с автоинкрементным добавлением переменных. Данные затем добавляются функцией wddx_add_vars(), после чего пакет должен быть завершен с помощью wddx_packet_end().
wddx_packet_end
Завершение пакета WDDX
string wddx_packet_end (int packetjid)
Возвращает содержимое пакета.
wddx_add_vars
Добавление следующей переменной в пакет WDDX
wddx_add_vars (int packet_id, mixed name_var [, mixed ...])
Используется для последовательного добавления данных в пакет packet_id, созданный функцией wddx_packet_start().
wddx_deserialize
Распаковка пакета WDDX
mixed wddx_deseria1ize (string packet)
Возвращает данные такого типа, которые были сериализированы.