php-doc-en/functions/wddx.xml
2001-09-16 23:01:49 +00:00

268 lines
8.6 KiB
XML

<?xml encoding="iso-8859-1"?>
<!-- $Revision: 1.11 $ -->
<reference id="ref.wddx">
<title>WDDX Functions</title>
<titleabbrev>WDDX</titleabbrev>
<partintro>
<para>
These functions are intended for work with <ulink
url="&url.wddx;">WDDX</ulink>.
</para>
<para>
In order to use WDDX, you will need to install the expat library
(which comes with apache 1.3.7 or higher) and recompile PHP with
<option role="configure">--with-xml</option> and <option
role="configure">--enable-wddx</option>.
</para>
<para>
Note that all the functions that serialize variables use the first
element of an array to determine whether the array is to be
serialized into an array or structure. If the first element has
string key, then it is serialized into a structure, otherwise,
into an array.
<example>
<title>Serializing a single value</title>
<programlisting role="php">
&lt;?php
print wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?&gt;
</programlisting>
</example>
</para>
<para>
This example will produce:
<informalexample>
<programlisting role="php">
&lt;wddxPacket version='1.0'&gt;&lt;header comment='PHP packet'/&gt;&lt;data&gt;
&lt;string&gt;PHP to WDDX packet example&lt;/string&gt;&lt;/data&gt;&lt;/wddxPacket&gt;
</programlisting>
</informalexample>
<example>
<title>Using incremental packets</title>
<programlisting role="php">
&lt;?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");
/* Suppose $cities came from database */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");
$packet = wddx_packet_end($packet_id);
print $packet;
?&gt;
</programlisting>
</example>
</para>
<para>
This example will produce:
<informalexample>
<programlisting role="php">
&lt;wddxPacket version='1.0'&gt;&lt;header comment='PHP'/&gt;&lt;data&gt;&lt;struct&gt;
&lt;var name='pi'&gt;&lt;number&gt;3.1415926&lt;/number&gt;&lt;/var&gt;&lt;var name='cities'&gt;
&lt;array length='3'&gt;&lt;string&gt;Austin&lt;/string&gt;&lt;string&gt;Novato&lt;/string&gt;
&lt;string&gt;Seattle&lt;/string&gt;&lt;/array&gt;&lt;/var&gt;&lt;/struct&gt;&lt;/data&gt;&lt;/wddxPacket&gt;
</programlisting>
</informalexample>
</para>
</partintro>
<refentry id="function.wddx-serialize-value">
<refnamediv>
<refname>wddx_serialize_value</refname>
<refpurpose>Serialize a single value into a WDDX packet</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string
<function>wddx_serialize_value</function></funcdef>
<paramdef>mixed <parameter>var</parameter></paramdef>
<paramdef>string
<parameter><optional>comment</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
<function>wddx_serialize_value</function> is used to create a
WDDX packet from a single given value. It takes the value
contained in <parameter>var</parameter>, and an optional
<parameter>comment</parameter> string that appears in the packet
header, and returns the WDDX packet.
</para>
</refsect1>
</refentry>
<refentry id="function.wddx-serialize-vars">
<refnamediv>
<refname>wddx_serialize_vars</refname>
<refpurpose>Serialize variables into a WDDX packet</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>wddx_serialize_vars</function></funcdef>
<paramdef>mixed <parameter>var_name</parameter></paramdef>
<paramdef>mixed
<parameter><optional>...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
<para>
<function>wddx_serialize_vars</function> is used to create a WDDX
packet with a structure that contains the serialized
representation of the passed variables.
</para>
<para>
<function>wddx_serialize_vars</function> takes a variable number
of arguments, each of which can be either a string naming a
variable or an array containing strings naming the variables or
another array, etc.
</para>
<para>
<example>
<title>wddx_serialize_vars example</title>
<programlisting>
&lt;?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";
$clvars = array("c", "d");
print wddx_serialize_vars("a", "b", $clvars);
?&gt;
</programlisting>
</example>
</para>
<para>
The above example will produce:
<programlisting>
&lt;wddxPacket version='1.0'&gt;&lt;header/&gt;&lt;data&gt;&lt;struct&gt;&lt;var name='a'&gt;&lt;number&gt;1&lt;/number&gt;&lt;/var&gt;
&lt;var name='b'&gt;&lt;number&gt;5.5&lt;/number&gt;&lt;/var&gt;&lt;var name='c'&gt;&lt;array length='3'&gt;
&lt;string&gt;blue&lt;/string&gt;&lt;string&gt;orange&lt;/string&gt;&lt;string&gt;violet&lt;/string&gt;&lt;/array&gt;&lt;/var&gt;
&lt;var name='d'&gt;&lt;string&gt;colors&lt;/string&gt;&lt;/var&gt;&lt;/struct&gt;&lt;/data&gt;&lt;/wddxPacket&gt;
</programlisting>
</para>
</refsect1>
</refentry>
<refentry id="function.wddx-packet-start">
<refnamediv>
<refname>wddx_packet_start</refname>
<refpurpose>
Starts a new WDDX packet with structure inside it
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>wddx_packet_start</function></funcdef>
<paramdef>string
<parameter><optional>comment</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Use <function>wddx_packet_start</function> to start a new WDDX
packet for incremental addition of variables. It takes an
optional <parameter>comment</parameter> string and returns a
packet ID for use in later functions. It automatically creates a
structure definition inside the packet to contain the variables.
</para>
</refsect1>
</refentry>
<refentry id="function.wddx-packet-end">
<refnamediv>
<refname>wddx_packet_end</refname>
<refpurpose>Ends a WDDX packet with the specified ID</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>wddx_packet_end</function></funcdef>
<paramdef>int <parameter>packet_id</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
<function>wddx_packet_end</function> ends the WDDX packet
specified by the <parameter>packet_id</parameter> and returns the
string with the packet.
</para>
</refsect1>
</refentry>
<refentry id="function.wddx-add-vars">
<refnamediv>
<refname>wddx_add_vars</refname>
<refpurpose>
Add variables to a WDDX packet with the specified ID
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef><function>wddx_add_vars</function></funcdef>
<paramdef>int <parameter>packet_id</parameter></paramdef>
<paramdef>mixed <parameter>name_var</parameter></paramdef>
<paramdef>mixed
<parameter><optional>...</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
<para>
<function>wddx_add_vars</function> is used to serialize passed
variables and add the result to the packet specified by the
<parameter>packet_id</parameter>. The variables to be serialized
are specified in exactly the same way as
<function>wddx_serialize_vars</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.wddx-deserialize">
<refnamediv>
<refname>wddx_deserialize</refname>
<refpurpose>Deserializes a WDDX packet</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>mixed <function>wddx_deserialize</function></funcdef>
<paramdef>string <parameter>packet</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
<function>wddx_deserialize</function> takes a
<parameter>packet</parameter> string and deserializes it. It
returns the result which can be string, number, or array. Note
that structures are deserialized into associative arrays.
</para>
</refsect1>
</refentry>
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->