Mục lục
- WDDX_ADD_VARS - Thêm các biến vào gói WDDX với ID được chỉ định
- wddx_deserialize - unserialize một gói wddx
- WDDX_PACKET_END - Kết thúc gói WDDX với ID được chỉ định
- WDDX_PACKET_START - Bắt đầu gói WDDX mới có cấu trúc bên trong nó
- wddx_serialize_value - tuần tự hóa một giá trị duy nhất vào gói WDDX
- WDDX_SERIALIZE_VARS - Các biến tuần tự hóa thành gói WDDX
Không có người dùng đóng góp ghi chú cho trang này. ¶
Mục lục
As of version 5.2.5, this is wrong:
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
<?php
header("Content-Type: text/xml;encoding=utf-8");
echo utf8_decode(wddx_serialize_value("안녕 하세요"));
?>
(This is why I dislike PHP, sorry)
igel ¶ ¶
Mục lục
If your PHP doesn't have wddx support installed, and you need it, and you don't want to install PEAR just for wddx, try this short piece of code, based on SimpleXML:
//can read any wddx file generated from php arrays. assumes var elements are only inside struct elements and that only one packet exists.
function wddx_read_node($node, $type)
{
switch($type)
{
case "boolean":
return (string)$node;
case "number":
case "binary":
case "string":
return (string)$node;
case "null":
return null;
case "array":
$a = array();
foreach($node as $subtype => $subnode)
{
$a[] = wddx_read_node($subnode, $subtype);
}
return $a;
case "struct":
$a = array();
foreach($node as $subtype => $subnode)
{
list($key, $value) = wddx_read_node($subnode, $subtype); //must be a var element
$a[$key] = $value;
}
return $a;
case "var":
list($subnode, $subtype) = getchild($node);
return array((string)$node["name"], wddx_read_node($subnode, $subtype));
case "data":
list($subnode, $subtype) = getchild($node);
return wddx_read_node($subnode, $subtype);
}
}
function wddx_read($string)
{
$xml = simplexml_load_string($string);
$d = wddx_read_node($xml->data, "data");
return $d;
}
important notice: this one may not work with all wddx input. multiple packets or variables outside a "struct" are not supported. basically, you always get a PHP (associative) array, never something else. feel free to make additions.
igel ¶ ¶
14 năm trước
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
1
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
2
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
3
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
4
Egbert teeselink ¶ ¶
14 năm trước
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
5
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
6
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
7
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
8
> Note: If you want to serialize non-ASCII characters you
> have to convert your data to UTF-8 first (see utf8_encode()
> and iconv()).
9
Egbert teeselink ¶ ¶
Q1Tum tại hotmail dot com
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
1
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
2
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
3
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
4
18 năm trước ¶
Jimmy Wimenta ¶
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
6
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
7
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
8
Serializing a string with WDDX will always convert it from ISO-8859-1 to UTF-8, no matter what the original encoding is. So if your data already are UTF-8, you get just gibberish.
9
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
0
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
1
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
2
Không tại spam dot thx ¶ ¶
15 năm trước
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
4
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
5
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
6
You can restore the original encoding by using utf8_decode on the serialized wddx data, even though your original data may use chars not included in ISO-8859-1:
7