In diesem Artikel werden Probleme im Zusammenhang mit der Verarbeitung von Protokollpufferdaten in PHP erläutert.
Protocol Buffers ist ein leichtes und effizientes strukturiertes Datenspeicherformat, das für die Serialisierung strukturierter Daten verwendet werden kann und sich sehr gut für die Datenspeicherung oder das RPC-Datenaustauschformat eignet. Es kann als sprachunabhängiges, plattformunabhängiges und erweiterbares serialisiertes strukturiertes Datenformat in Kommunikationsprotokollen, Datenspeicherung und anderen Bereichen verwendet werden. Derzeit werden APIs in drei Sprachen bereitgestellt: C++, Java und Python.
Protokoll-Compiler installieren
Herunterladen und installieren
$ 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
Installationsüberprüfung:
$ /usr/local/protobuf/bin/protoc --version libprotoc 2.5.0
PHP-Erweiterung
PHP-Erweiterung installieren
$ 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
Fügen Sie in der php.ini-Konfigurationsdatei hinzu: extension = "protocolbuffers.so"
$ php -m | 🎜>
$ mkdir ~/code/app$ cd ~/code/app$ composer require protocolbuffers/protoc-gen-php
$ 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; }
Testdateien schreiben:
$ vim demo.proto.php<?phpspl_autoload_register(function($name){ static $classmap; if (!$classmap) { $classmap = array( 'Proto\Demo\OrderInfo' => '/Proto/Demo/OrderInfo.php', 'Proto\Demo\UserInfo' => '/Proto/Demo/UserInfo.php', // @@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('Jack'); $oi->setAge(28); $oi->setAmount('500');//压缩数据$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());
Testen
$ php demo.proto.php string(15) "压缩数据:"string(13) " Jack500"string(15) "获取数据:"string(4) "Jack"string(2) "28"string(3) "500"
Über die PHP Express-Abfrageklasse
PHP sendet XML-Daten über Curl und erhält XML-Daten
PHP generiert perfekt Word-Dokumente und HTML-Elemente können hinzugefügt werden
Das obige ist der detaillierte Inhalt vonVerarbeitung von Protokollpufferdaten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!