【发布时间】:2011-09-16 09:35:30
【问题描述】:
我收到了来自服务器的响应,我需要使用 protobuf 对其进行反序列化。我知道我需要包含定义的 .proto 文件。
如何解析响应字符串并创建 PHP 对象?
更新: 我尝试使用可用的库(http://code.google.com/p/pb4php/),但它抛出异常消息“Protofile type uint64 unknown!”。知道如何避免它吗?
【问题讨论】:
标签: php protocol-buffers
我收到了来自服务器的响应,我需要使用 protobuf 对其进行反序列化。我知道我需要包含定义的 .proto 文件。
如何解析响应字符串并创建 PHP 对象?
更新: 我尝试使用可用的库(http://code.google.com/p/pb4php/),但它抛出异常消息“Protofile type uint64 unknown!”。知道如何避免它吗?
【问题讨论】:
标签: php protocol-buffers
你必须下载 protobuf lib for php。它带有编译器(生成器),可以为您从 .proto 生成 php 类。
【讨论】:
uint64 类型,你需要实现它。它写在那个库的主页上:“目前这个项目处于 beta 状态。我完成了 proto 文件的解析器并实现了 Int、Enum、String 和 Nested Messages,用于消息读取和写作。随意完成实现。”
我查看了库的代码,发现不支持 uint64。现在我从服务器获得的 uint64 字段是到期时间。即使我认为 100 年到期,它也永远不会超出 int 范围。所以我已经将 uint64 链接到 int 数据类型的解析,它对我来说工作得很好。
虽然不是很好的解决方案,完全依赖个人使用。
【讨论】: