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
Libérer: 2023-03-27 10:52:02
original
2474 Les gens l'ont consulté

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
Copier après la connexion

Vérification de l'installation :

$ /usr/local/protobuf/bin/protoc  --version
libprotoc 2.5.0
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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;
}
Copier après la connexion

É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());
Copier après la connexion

Recommandations associées :

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

À 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal