【问题标题】:How to do protobuf deserialization in PHP如何在 PHP 中进行 protobuf 反序列化
【发布时间】:2011-09-16 09:35:30
【问题描述】:

我收到了来自服务器的响应,我需要使用 protobuf 对其进行反序列化。我知道我需要包含定义的 .proto 文件。

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

更新: 我尝试使用可用的库(http://code.google.com/p/pb4php/),但它抛出异常消息“Protofile type uint64 unknown!”。知道如何避免它吗?

【问题讨论】:

    标签: php protocol-buffers


    【解决方案1】:

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

    【讨论】:

    • 我尝试使用这个库,但它对我不起作用。我收到错误“Protofile type uint64 unknown!”。知道如何解决吗?
    • @CM.:我认为将这些信息添加到您的问题中是值得的。而对于uint64 类型,你需要实现它。它写在那个库的主页上:“目前这个项目处于 beta 状态。我完成了 proto 文件的解析器并实现了 Int、Enum、String 和 Nested Messages,用于消息读取和写作。随意完成实现。”
    【解决方案2】:

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

    虽然不是很好的解决方案,完全依赖个人使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多