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(>, [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
php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

WebStorm Mac版
便利なJavaScript開発ツール

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



