phpday 2022

igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize igbinary_serialize() によって保存されたバイナリ表現から、PHP の値を復元する

説明

igbinary_unserialize(string $str): mixed

igbinary_unserialize() は、 igbinary_serialize() によってシリアライズされた単一の値をとり、 それを PHP の変数に戻します。

警告

信頼できないユーザーからの入力をそのまま igbinary_unserialize() に渡してはいけません。 デシリアライズの時には、 オブジェクトのインスタンス生成やオートローディングなどで コードが実行されることがあり、 悪意のあるユーザーがこれを悪用するかもしれないからです。 シリアル化したデータをユーザーに渡す必要がある場合は、 安全で標準的なデータ交換フォーマットである JSON などを使うようにしましょう。 json_decode() および json_encode() を利用します。

外部で保存されたシリアライズ済みデータを復元する場合、 データの検証に hash_hmac() 関数が使えます。 重要なのは、そのデータを改ざんした者がいないことを保証することです。

警告

igbinary のシリアライズフォーマットでは、 同じ値に対する異なるリファレンスを区別できる方法がありません。 指定された値に対する全ての PHP のリファレンスは、 デシリアライズされる際に、 同じリファレンスのグループの一部として扱われます。 これは、シリアライズされる際に 異なるリファレンスのグループの一部であったとしても同じです。

パラメータ

str

igbinary_serialize() が生成したシリアライズ済みの値。

もしデシリアライズする変数がオブジェクトの場合、 オブジェクトが無事再作成された後、igbinary は自動的にメンバ関数 __unserialize() または __wakeup() (存在していれば) をコールしようとします。

注意: unserialize_callback_func ディレクティブ

コールバック関数を設定することが可能です。(不完全な object "__PHP_Incomplete_Class"を得ることを防ぐため) コールバック関数は、デシリアライズする際に未定義のクラスをインスタ ンス化する必要がある場合にコールされます。 unserialize_callback_func を定義するためには、 php.ini, ini_set(), .htaccess を使用し てください。未定義のクラスをインスタンス化する度に、コールバック関 数がコールされます。この機能を無効とするには、 単純にこの設定を空にしてください。

戻り値

変換済の値を返します。 値の型は、 bool, int, float, string, array, object, null があり得ます。

渡された文字列が デシリアライズ できない場合、 false が返されると共に、 E_NOTICE または E_WARNING が発生します。

エラー / 例外

デシリアライズ を行うハンドラの中で、オブジェクトが Throwable をスローする可能性があります。

注意

警告

エラーが発生したり、 nullfalse をシリアライズしたものを デシリアライズ しようとした場合、 null または false を返します。 この特殊ケースについては、 strigbinary_serialize(null)igbinary_serialize(false) と比較したり、 発生した E_NOTICE をキャッチすることで扱えます。

参考

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top