Учебник РНР
Назад Вперёд

CIII. Функции WDDX

Эти функции предназначены для работы с WDDX.

Чтобы использовать WDDX, вам необходимо установить библиотеку expat (которая поставляется с Аpache 1.3.7 или новее) и рекомпилировать PHP с опциями --with-xml и --enable-wddx.

Примечание: Если вы хотите сериализовать не-ASCII символы, вы должны предварительно установить соответствующую локализацию (см. setlocale()).

Все функции, сериализующие переменные, используют первый элемент массива для определения того, сериализован ли массив в массив или в структуру. Если первый элемент имеет строковой ключ, то он сериализуется в структуру, иначе - в массив.

Пример 1. Сериализация отдельного значения

<?php
print wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

На выходе этот пример даст:
<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Пример 2. Использование инкремекнтных пакетов

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Предположим, $cities пришла из БД */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
print $packet;
?>

Это пример даст на выходе:
<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Содержание
wddx_add_vars - добавляет переменные в пакет WDDX со специфицированным ID
wddx_deserialize - десериализует WDDX-пакет
wddx_packet_end - заканчиает WDDX-пакет со специфицированным ID
wddx_packet_start - стартует новый WDDX-пакет со структурой в нём
wddx_serialize_value - сериализует отдельное значение в WDDX-пакет
wddx_serialize_vars - сериализует переменную в WDDX-пакет

Назад Оглавление Вперёд
w32api_set_call_method Вверхwddx_add_vars