Maison >développement back-end >tutoriel php >Traitement des données des tampons de protocole en PHP

Traitement des données des tampons de protocole en PHP

jacklove
jackloveoriginal
2018-05-22 09:55:222507parcourir

Cet article expliquera les problèmes liés au traitement des données des tampons de protocole en PHP.

Protocol Buffers est un format de stockage de données structurées léger et efficace qui peut être utilisé pour la sérialisation de données structurées et est très approprié pour le stockage de données ou le format d'échange de données RPC. Il peut être utilisé comme format de données structurées sérialisées extensible, indépendant du langage, de la plate-forme et dans les protocoles de communication, le stockage de données et d'autres domaines. Actuellement, des API en trois langages : C++, Java et Python sont fournies.

Installer le compilateur de protocole

Télécharger et installer

$ wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
$ tar zxvf protobuf-2.5.0.tar.gz
$ cd protobuf-2.5.0
$ ./configure --prefix=/usr/local/protobuf
$ sudo make 
$ sudo  make install

Vérification de l'installation :

$ /usr/local/protobuf/bin/protoc  --version
libprotoc 2.5.0

extension php

Installer l'extension php

$ wget https://pecl.php.net/get/protocolbuffers-0.2.6.tgz
$ tar zxvf protocolbuffers-0.2.6.tgz
$ cd protocolbuffers-0.2.6
$ phpize
$ ./configure
$ sudo make 
$ sudo  make install

Ajouter le fichier de configuration php.ini : extension = "protocolbuffers.so"

$ php -m | > plug-in de protocole

Test :

Écrire le fichier proto
$ mkdir ~/code/app$ cd ~/code/app$ composer require protocolbuffers/protoc-gen-php

Générer le code de la bibliothèque de classes php

$ /usr/local /protobuf/ bin/protoc --plugin=vendor/bin/protoc-gen-php --php_out= -I. demo.proto
$ vim demo.proto
syntax = "proto2";
package Proto.Demo;
message OrderInfo {
    required string name = 1 ;
    required int32 age = 2;
    required string amount = 3;
}
message UserInfo {
    required int32 uid = 1;
    required string address = 2;
}

Écrire le fichier de test :


<.>Test

Cet article explique le contenu pertinent du traitement des données des tampons de protocole en PHP Pour plus de connaissances connexes, veuillez faire attention au site Web chinois de PHP.
$ vim demo.proto.php<?phpspl_autoload_register(function($name){  static $classmap;  if (!$classmap) {
    $classmap = array(      &#39;Proto\Demo\OrderInfo&#39; => &#39;/Proto/Demo/OrderInfo.php&#39;,      &#39;Proto\Demo\UserInfo&#39; => &#39;/Proto/Demo/UserInfo.php&#39;,      // @@protoc_insertion_point(autoloader_scope:classmap)
    );
  }  if (isset($classmap[$name])) {    require __DIR__ . DIRECTORY_SEPARATOR . $classmap[$name];
  }
});
call_user_func(function(){
  $registry = \ProtocolBuffers\ExtensionRegistry::getInstance();  // @@protoc_insertion_point(extension_scope:registry)});
$oi = new Proto\Demo\OrderInfo();
$oi->setName(&#39;Jack&#39;);
$oi->setAge(28);
$oi->setAmount(&#39;500&#39;);//压缩数据$protoData = $oi->serializeToString();
var_dump("压缩数据:");
var_dump($protoData);//获取到$age的值$obj = Proto\Demo\OrderInfo::parseFromString($protoData);
var_dump("获取数据:");
var_dump($obj->getName());
var_dump($obj->getAge());
var_dump($obj->getAmount());

Recommandations associées :

$ php demo.proto.php 
string(15) "压缩数据:"string(13) "
Jack500"string(15) "获取数据:"string(4) "Jack"string(2) "28"string(3) "500"

À propos de la classe de requête express PHP

php envoie des données XML via curl et obtient des données XML

PHP génère parfaitement des documents Word, et des éléments HTML peuvent être ajoutés

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn