


PHP 拡張モジュールは、バイナリ データを Erlang ext term 形式 (term_to_binary によって生成) で解凍します。
PHP 拡張モジュールは、Erlang ext term 形式 (term_to_binary によって生成) でバイナリ データを解凍します
1. 記事「Erlang の Term_to_Binary データ パケット メカニズムの予備調査」では、Erlang 拡張用語形式 (Erlang 外部用語形式) バイナリ
の役割が紹介されています。 一部の学生は、term_to_binary 関数を使用して Erlang データをパッケージ化し、バイナリ形式でデータベースに保存し、PHP を使用して読み取って PHP 配列に解凍したいと考えています。上記のアプリケーション シナリオで発生する問題を解決するには、
peb (Php-Erlang Bridge) 拡張機能を参照して、erlang:binary_to_term/1 関数に似たこのバイナリ拡張機能、
を作成しました。 これは、binary_to_term の PHP バージョンとして理解できます。
2. バイナリ拡張の概要
2.1. このバイナリ拡張機能は次の 3 つの関数をエクスポートします:
- array binary_to_term(string $binary) は、アンパックされた配列を返します。
- int binary_errno () は、binary_to_term への最後の呼び出しによって生成されたエラー コードを返します。 0 はエラーがないことを意味し、1 はサポートされていないデータ型がバイナリ コンテンツに含まれていることを意味します。
- string binary_error () binary_to_term への最後の呼び出しによって生成されたエラー メッセージを返します。エラーがない場合は空を返します。
http://download.csdn.net/download/u011471961/6447631
3. バイナリ拡張機能のインストール
*nux にインストール:
ステップ 1: ----------
binary.zip を解凍します
cd ./バイナリ
phpize または phpize5
ステップ 2: ----------
configureを実行する前に、Erlangのインストールディレクトリとphp-configのパスを確認してください。以下のconfigureは一例であり、実際のパスに応じて変更できます。
Linux にインストールします:
./configure CC="gcc -L/usr/local/lib/erlang/lib/erl_interface-3.7.11/lib -I/usr/local/lib/erlang/lib/erl_interface-3.7.11/include" -- Enable-binary --with-php-config=/usr/local/php/bin/php-config
または:
./configure CC="gcc -L/usr/local/lib/erlang/lib/erl_interface-3.7.11/lib -I/usr/local/lib/erlang/lib/erl_interface-3.7.11/include" -- Enable-binary --with-php-config=/usr/bin/php-config5
Apple コンピュータにインストールします:
sudo MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch i386 -arch x86_64 -bind_at_load" ./configure CC="gcc -m32 -L/usr/local/lib/erlang/lib/erl_interface-3.7.6/lib -I/usr/local/lib/erlang/lib/erl_interface-3.7.6/include" --enable-binary
ステップ 3: ----------
作る
ステップ 4: ----------
テストを作成します
ステップ 5: ----------
インストールを行う
ステップ 6: ----------
php.ini ファイルを変更します:
拡張子=binary.so
または:
拡張子=/path/to/binary.so
ステップ 7: ----------
php-cgi または apache
を再起動します。
ステップ 8: ----------
phpinfo() 関数またはコマンド (php -m) を通じてバイナリ モジュールがロードされているかどうかを確認します。
4. バイナリ拡張の適用例
4.1. mysql データテーブルを作成する
CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bin` varbinary(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
4.2. Erlang 側でのデータの書き込み
test() -> Data = [{name, rolong},{phone, 888888}], Bin = term_to_binary(Data), %% 写入数据库的接口依自己情况而定 db:execute(<<"insert test(bin) values(~s);">>, [Bin]).
4.3. PHP で PHP 配列を読み取り、解凍します
<?php $sql = "select `bin` from test order by id desc limit 1"; %% 读取数据库的接口依自己情况而定 $bin = Db::getInstance()->getOne($sql); $data = binary_to_term($bin); echo '<pre class="brush:php;toolbar:false">'; var_dump($data); echo '';
array(1) { [0]=> array(2) { [0]=> array(2) { [0]=> string(4) "name" [1]=> string(6) "rolong" } [1]=> array(2) { [0]=> string(5) "phone" [1]=> int(888888) } } }
4. 概要
バイナリ拡張モジュールでは、あまり一般的に使用されない一部のデータ型は当面サポートされていません。特別なニーズがある学生は、それらを変更してソース コードに実装できます。
Erlang は、データのパケット化とアンパックのための C インターフェイスを提供します。を参照してください。 http://www.erlang.org/doc/apps/erl_interface/index.html
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
