关于协议缓冲区:如何在PHP中进行Protobuf反序列化

How to do protobuf deserialization in PHP

我从服务器收到响应,需要使用protobuf反序列化。我知道我需要具有将包含定义的.proto文件。

如何解析响应字符串并创建PHP对象?

更新:
我尝试使用可用的库(http://code.google.com/p/pb4php/),但是它抛出异常,并显示消息"原型类型uint64 unknown!"。知道如何避免这种情况吗?


您必须下载php的protobuf lib。它带有编译器(生成器),它将为您从.proto生成php类。


我查看了库代码,发现不支持uint64。现在我从服务器获取的uint64字段是到期时间。即使我认为100年有效,它也永远不会超出int范围。因此,我已经将uint64链接到了int数据类型的解析,并且对我来说工作正常。

尽管这不是一个好的解决方案,并且完全取决于个人使用情况。