当前位置: 首页 > 工具软件 > PHP Serialize > 使用案例 >

python php 序列化,Python phpserialize包_程序模块 - PyPI - Python中文网

吴康平
2023-12-01

用法>>> from phpserialize import *

>>> obj = dumps("Hello World")

>>> loads(obj)

'Hello World'

因为php不知道列表的概念

像php中的散列映射一样序列化。事实上

序列化列表的反向值是dict:>>> loads(dumps(range(2)))

{0: 0, 1: 1}

如果您想再次拥有一个列表,您可以使用

dict\u to\u列表

帮助函数:>>> dict_to_list(loads(dumps(range(2))))

[0, 1]

也可以通过使用dict to tuple将其转换为元组。

功能:>>> dict_to_tuple(loads(dumps((1, 2, 3))))

(1, 2, 3)

另一个问题是unicode字符串。默认情况下,Unicode字符串是

编码为"utf-8",但未在非序列化时解码。原因

这是phpSerialize无法猜测您是否有二进制或文本数据

在字符串中:>>> loads(dumps(u'Hello W\xf6rld'))

'Hello W\xc3\xb6rld'

如果知道结果中只有已知字符集的文本数据

您可以通过在调用时将

decode_strings

设置为true来解码字符串

负载:>>> loads(dumps(u'Hello W\xf6rld'), decode_strings=True)

u'Hello W\xf6rld'

字典键仅限于字符串和整数。

被转换

变成一个空字符串,并将浮点和布尔值变成php的整数。

兼容性:>>> loads(dumps({None: 14, 42.23: 'foo', True: [1, 2, 3]}))

{'': 14, 1: {0: 1, 1: 2, 2: 3}, 42: 'foo'}

它还提供从类似文件的对象中读取的功能:>>> from StringIO import StringIO

>>> stream = StringIO('a:2:{i:0;i:1;i:1;i:2;}')

>>> dict_to_list(load(stream))

[1, 2]

写信给那些人:>>> stream = StringIO()

>>> dump([1, 2], stream)

>>> stream.getvalue()

'a:2:{i:0;i:1;i:1;i:2;}'

支持对象的链接:>>> from phpserialize import *

>>> obj = dumps("Hello World")

>>> loads(obj)

'Hello World'

0

但是,php不支持此功能。php只会取消序列化

第一个对象。

 类似资料: