如何在 PHP 中处理 Protocol Buffers 数据
2023-09-11 14:14:34 时间
Protocol Buffers是谷歌定义的一种跨语言、跨平台、可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小,解析效率高。感兴趣的可以访问这里。Protocol Buffers官方只支持C++, Java, Python, C#, Go,如果想在PHP中使用Protocol Buffers,需要借助于第三方的扩展,使用方法如下。
安装protoc编译器
第一步,安装Google的protoc编译器,这个工具可以把proto文件中定义的Message转换为各种编程语言中的类。下载release版本直接编译安装。
tar -xvzf protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./configure --prefix=/usr/local/protobuf make && make install
安装PHP Plugin
第二步,安装protoc的PHP plugin,需要使用composer安装,感兴趣的可以访问http://www.phpcomposer.com。
这个插件可以将proto文件转换到PHP文件,在PHP应用中引用后,可以将二进制格式的Protocol Buffers数据转换为PHP的对象
unzip protoc-gen-php-master.zip cd protoc-gen-php-master curl -sS https://getcomposer.org/installer | php php composer.phar install /usr/local/protobuf/bin/protoc --plugin=bin/protoc-gen-php --php_out=php_kingso -I. kingso.proto
安装php-protocolbuffers
第三步,安装php-protocolbuffers,这是一个PHP扩展,在第二步中已经完成了proto文件到PHP文件的转换,但是对PHP对象的各种操作还需要这个扩展中的API方法
phpize ./configure make && make install
然后在你的php.ini配置文件中添加
extension = "protocolbuffers.so"
编写代码
第四步,借助上面提到的扩展的各种API方法,可以简单地get出自己需要的字段完成后续工作
require "....../kingso.proto.php" $ks_result = KSResult::parseFromString($kingso_res); $ks_result->get('xxx_name');
相关文章
- PHP使用cookie时遇到的坑
- 配置php.ini实现PHP文件上传功能
- CentOS下查看nginx和php的编译参数
- php:如何使用PHP排序, key为字母+数字的数组(多维数组)
- PHP读取日志里数据方法理解
- PHP采集库-Snoopy.class.php
- 实用的在线预览数据字典的工具(php编写)
- php:在linux上用sudo提升权限(centos 8 / PHP 7.4.2)
- thinkphp6:开启调试模式(thinkphp6.0.5 / php 7.4.9)
- php位运算 与 或 异或 取反
- php curl获取的数据不直接输出
- [php-src] Php扩展开发的琐碎注意点、细节
- atitit.激活一个窗口总结 swing java .net php
- paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结
- php接口数据加密、解密、验证签名代码实例