igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize — CrĂ©e une variable PHP Ă  partir d'une valeur sĂ©rialisĂ©e par igbinary_serialize()

Description

function igbinary_unserialize(string $str): mixed

igbinary_unserialize() prend une variable sérialisée par igbinary_serialize() et la convertit en une variable PHP.

Avertissement

Les entrĂ©es utilisateur non fiables ne doivent pas ĂȘtre passĂ©es Ă  la fonction igbinary_unserialize(). La dĂ©sĂ©rialisation peut entraĂźner l'exĂ©cution de code chargĂ© et exĂ©cutĂ© lors de l'instanciation et l'autochargement d'objet, et ainsi, un utilisateur mal intentionnĂ© peut ĂȘtre capable d'exploiter ce comportement. À la place, un standard d'Ă©change sĂ»r tel que JSON (via json_decode() et json_encode()) doit ĂȘtre utilisĂ© pour passer des donnĂ©es sĂ©rialisĂ©es au client.

S'il est indispensable de dĂ©sĂ©rialiser des donnĂ©es sĂ©rialisĂ©es provenant de l'extĂ©rieur, la fonction hash_hmac() peut ĂȘtre utilisĂ©e pour valider les donnĂ©es. Il est important de vĂ©rifier que personne n'a altĂ©rĂ© les donnĂ©es.

Avertissement

Le protocole de sĂ©rialisation par igbinary ne permet pas de distinguer entre les diffĂ©rents groupes de rĂ©fĂ©rences. Toutes les rĂ©fĂ©rences PHP Ă  une valeur donnĂ©e sont vues comme membres d'un mĂȘme groupe lors de la dĂ©sĂ©rialisation, mĂȘme si elles appartenaient Ă  des groupes diffĂ©rents avant la sĂ©rialisation.

Liste de paramĂštres

str
La chaßne de caractÚres sérialisée, générée par igbinary_serialize(). Si la valeur désérialisée est un objet, aprÚs avoir réussi à le reconstruire, igbinary tentera automatiquement d'appeler les méthodes __unserialize() ou __wakeup() (si l'une d'elles existe).

Note: La directive unserialize_callback_func
La fonction de rappel spécifiée dans la directive unserialize_callback_func est appelée lorsqu'une classe non définie est désérialisée. Si aucune fonction de rappel n'est spécifiée, l'objet sera instancié en tant que __PHP_Incomplete_Class.

Valeurs de retour

La valeur convertie est retournĂ©e par la fonction, et peut ĂȘtre de type boolĂ©en, entier, nombre dĂ©cimal, chaĂźne de caractĂšres, tableau, objet, ou de type null.

Si la chaĂźne de caractĂšres passĂ©e ne peut pas ĂȘtre dĂ©sĂ©rialisĂ©e, cette fonction retourne false et un diagnostic E_NOTICE ou E_WARNING est Ă©mis.

Erreurs / Exceptions

Les objets peuvent lancer un Throwable dans leur gestionnaire de désérialisation.

Notes

Avertissement

null ou false est retourné soit dans le cas d'une erreur soit aprÚs avoir désérialisé le résultat de la sérialisation de null ou false. Il est possible de discriminer entre ces deux cas spéciaux en comparant la valeur du paramÚtre str avec le résultat de l'exécution de igbinary_serialize(null) ou de igbinary_serialize(false) ou bien en attrapant un diagnostic E_NOTICE.

Voir aussi

add a note

User Contributed Notes 1 note

up
0
olliejones at gmail dot com ¶
1 year ago
This little function returns true if a data string was made by igbinary_serialize() and can be passed to igbinary_unseriaize(). 

function is_igbinary($data) {
      return is_string($data) && '00000002' === bin2hex(substr($data, 0, 4));
}

It doesn't validate the contents of the data string, or ensure it is safe to decode if it came from an untrusted source. But it is handy when trying to avoid unserializing data that wasn't serialized.