igbinary_unserialize
igbinary_serialize によって保存されたバイナリ表現から、PHP の値を復元する
&reftitle.description;
mixedigbinary_unserialize
stringstr
igbinary_unserialize は、
igbinary_serialize
によってシリアライズされた単一の値をとり、
それを PHP の変数に戻します。
信頼できないユーザーからの入力をそのまま
igbinary_unserialize に渡してはいけません。
アンシリアライズの時には、
オブジェクトのインスタンス生成やオートローディングなどで
コードが実行されることがあり、
悪意のあるユーザーがこれを悪用するかもしれないからです。
シリアル化したデータをユーザーに渡す必要がある場合は、
安全で標準的なデータ交換フォーマットである
JSON などを使うようにしましょう。
json_decode および json_encode
を利用します。
外部で保存されたシリアライズ済みデータを復元する場合、
データの検証に hash_hmac 関数が使えます。
重要なのは、そのデータを改ざんした者がいないことを保証することです。
igbinary のシリアライズフォーマットでは、
同じ値に対する異なるリファレンスを区別できる方法がありません。
指定された値に対する全ての PHP のリファレンスは、
アンシリアライズされる際に、
同じリファレンスのグループの一部として扱われます。
これは、シリアライズされる際に
異なるリファレンスのグループの一部であったとしても同じです。
&reftitle.parameters;
str
igbinary_serialize
が生成したシリアライズ済みの値。
もしアンシリアライズする変数がオブジェクトの場合、
オブジェクトが無事再作成された後、igbinary は自動的にメンバ関数
__unserialize() または __wakeup()
(存在していれば) をコールしようとします。
unserialize_callback_func ディレクティブ
コールバック関数を設定することが可能です。(不完全な
object "__PHP_Incomplete_Class"を得ることを防ぐため)
コールバック関数は、アンシリアライズする際に未定義のクラスをインスタ
ンス化する必要がある場合にコールされます。
unserialize_callback_func を定義するためには、
&php.ini;, ini_set, &htaccess; を使用し
てください。未定義のクラスをインスタンス化する度に、コールバック関
数がコールされます。この機能を無効とするには、
単純にこの設定を空にしてください。
&reftitle.returnvalues;
変換済の値を返します。
値の型は、
bool,
int, float, string,
array, object, null があり得ます。
渡された文字列が アンシリアライズ できない場合、
&false; が返されると共に、
E_NOTICE
または E_WARNING が発生します。
&reftitle.errors;
アンシリアライズ を行うハンドラの中で、オブジェクトが
Throwable をスローする可能性があります。
&reftitle.notes;
エラーが発生したり、
&null; や &false; をシリアライズしたものを
アンシリアライズ しようとした場合、
&null; または &false; を返します。
この特殊ケースについては、
str を
igbinary_serialize(null) や
igbinary_serialize(false) と比較したり、
発生した E_NOTICE
をキャッチすることで扱えます。
&reftitle.seealso;
unserialize
json_encode
json_decode
hash_hmac
igbinary_serialize
クラスのオートローディング
unserialize_callback_func
__wakeup()
__serialize()
__unserialize()