您好,欢迎访问一九零五行业门户网

如何在PHP中处理Protocol Buffers数据

我们知道protocol buffers是google定义的一种跨语言、跨平台、可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小,解析效率高。感兴趣的可以访问 https://developers.google.com/protocol-buffers/docs/overview。protocol buffers官方只支持c++, java, python, c#, go,如果想在php中使用protocol buffers,需要借助于第三方的扩展,使用方法如下。
安装protoc编译器 第一步,安装google的protoc编译器,这个工具可以把proto文件中定义的message转换为各种编程语言中的类。下载release版本直接编译安装。
tar -xvzf protobuf-2.5.0.tar.gzcd protobuf-2.5.0./configure --prefix=/usr/local/protobufmake && make install
下载地址
安装php plugin 第二步,安装protoc的php plugin,需要使用composer安装,感兴趣的可以访问 http://www.phpcomposer.com
这个插件可以将proto文件转换到php文件,在php应用中引用后,可以将二进制格式的protocol buffers数据转换为php的对象
unzip protoc-gen-php-master.zipcd protoc-gen-php-mastercurl -ss https://getcomposer.org/installer | phpphp 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./configuremake && make install
然后在你的php.ini配置文件中添加
extension = protocolbuffers.so
下载地址
编写代码 第四步,借助上面提到的扩展的各种api方法,可以简单地get出自己需要的字段完成后续工作
require ....../kingso.proto.php$ks_result = ksresult::parsefromstring($kingso_res);$ks_result->get('xxx_name');
其它类似信息

推荐信息