8

CLIからphpinfo()またはphp -iを実行すると、次の出力が得られます。

session

Registered save handlers => files user sqlite memcached
Registered serializer handlers => php php_binary wddx

PHPのシリアル化がバイナリ形式をサポートしていることを知りませんでした。また、それに関するドキュメントには何も記載されていないようです。

memcachedサーバーへのセッションシリアル化にigbinaryを使用する予定だったので、 php_binaryがどのように比較されるのか疑問に思います。

4

1 に答える 1

9

igbinary PHP 拡張機能は、PHP 独自の実装とは異なる新しいセッション シリアライズ/デシリアライズ ハンドラを提供しphpますphp_binary

あなたの質問に答えるには:これらのハンドラーはまったく比較できません。まったく異なります。igbinaryが導入する相違点は、プロジェクトの readme 内に文書化されています。

ig binaryと php_ binaryの 2 つの中でバイナリという単語を見つけたので、質問をしていると思います。しかし、それはあまり言いません。最初に をハンドラーと比較します。phpphp_binary

セッションのphp_binaryシリアライズ/デシリアライズ ハンドラは、デフォルトphpハンドラとほぼ同じです。セッション内の変数名のエンコード方法のみが異なります。

php_binaryすべてのセッション変数名に名前のバイナリ長をプレフィックスとして付けます。php各変数名には、|文字 ( \x7C, decimal ) の接尾辞が付いています124。私が知っていることから、変数の値のシリアル化はまったく違いはありません。

したがって、値のシリアル化はハンドラーphpphp_binaryハンドラーの間で同じです。

したがって、セッション変数名のプレ/サフィックスのわずかな違いに続いて、質問は実際にはigbinaryphpシリアライゼーション(セッションデータで使用される)とどのように比較されるかについて尋ねます。これらの違いについては、igbinaryreadmeで概説されています。何が行われたのか、その理由がかなりよく説明されています。

igbinaryシリアライズ/アンシリアライズにもシリアライゼーションを使用したい場合、拡張機能は 2 つの代替関数を提供します。

igbinary_serializeそしてigbinary_unserialize- PHP のいとこのように使用されます。

細かい違いが気になる方はご相談ください。

于 2011-07-17T10:14:58.830 に答える