CLXXIV. WDDX 関数

導入

以下の関数は、WDDX と組み合わせて 動作することを想定しています。

要件

WDDX を使用するには、(Apache 1.3.7 以降に付属する) expat ライブラリを インストールする必要があります。

インストール手順

expat をインストールした後、 --enable-wddx を指定して PHP を コンパイルする必要があります。

Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。

実行時設定

設定ディレクティブは定義されていません。

リソース型

この拡張モジュールでは、WDDX パケット ID を定義しています。これは wddx_packet_start() が返すものです。

定義済み定数

定数は定義されていません。

変数をシリアル化する全ての関数は配列の最初要素をその配列が配列と 構造体のどちらでシリアル化されるのかを定義するために使用するということに 注意してください。最初の要素が文字列をキーとして有する場合は 構造体でシリアル化され、その他の場合は配列でシリアル化されます。

例 1. WDDX を使用した単一の値のシリアル化

<?php
echo 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. WDDX を使用してパケットを追加する例

<?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);
echo
$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>

注意: ASCII以外の文字をシリアル化したい場合、まず最初に データを UTF-8 に変換する必要があります (utf8_encode() および iconv() を参照ください)。

目次
wddx_add_vars -- 指定した ID の WDDX パケットを追加する
wddx_deserialize -- wddx_unserialize() のエイリアス
wddx_packet_end -- 指定した ID の WDDX パケットを終了する
wddx_packet_start -- 新規の WDDX パケットを内部の構造体を用いて開始する
wddx_serialize_value -- 単一の値を WDDX パケットにシリアライズする
wddx_serialize_vars -- 変数を WDDX パケットにシリアライズする
wddx_unserialize -- シリアライズされた WDDX パケットを元に戻す