ner*_*ell 6 php serialization amazon-sqs
我正在使用 php serialize() 序列化 php 对象。但是,它会在受保护成员变量的结果中添加空字节。然后,该结果作为消息传递到 Amazon SQS 队列。问题是 SQS 不支持消息正文中的空字节。有什么办法可以摆脱空字节。我必须确保结果在另一端仍然不可序列化。
我在尝试序列化对象时遇到了同样的问题。
\n正如Michael - sqlbot评论中所解释的,base64_encode函数正确处理 NUL 字节。
在“序列化”方面你应该这样做:
\nbase64_encode(serialize($object));\nRun Code Online (Sandbox Code Playgroud)\n在“反序列化”方面:
\nunserialize(base64_decode($object));\nRun Code Online (Sandbox Code Playgroud)\n如果想了解serialize函数内部是如何工作的,可以阅读\n PHP Internals Book: Serialization :
\n\n上述序列化字符串中的 \\0 是 NUL 字节。正如您所看到的,私有和受保护成员使用相当特殊的名称进行序列化:私有属性以 \\0ClassName\\0 为前缀,受保护属性以 \\0*\\0 为前缀。这些名称是名称修改的结果,这是我们\xe2\x80\x99 将在后面的部分中介绍的内容。
\n
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |