SymfonyWorld Online 2022 Winter Edition

igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize Crée une variable PHP à partir d'une valeur linéarisée par igbinary_serialize()

Description

igbinary_unserialize(string $str): mixed

igbinary_unserialize() prend une variable linéarisé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élinéarisation peut résulter en une 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 linéarisées à l'utilisateur.

S'il est indispensable de délinéariser des données linéarisé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 linéarisation 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élinéarisation, même si elles appartenaient à des groupes différents avant la linéarisation.

Liste de paramètres

str

La chaîne de caractères linéarisée, générée par igbinary_serialize().

Si la variable délinéarisée est un objet, après avoir réussi à le reconstruire, PHP tentera automatiquement d'appeller les méthodes magiques __unserialize() ou __wakeup() (si l'une d'elles existe).

Note: La directive unserialize_callback_func

Il est possible de définir une fonction de rappel qui sera appelée si une classe doit être instanciée lors de la délinéarisation alors que cette dernière n'est pas actuellement définie (afin d'éviter de créer un object de la classe __PHP_Incomplete_Class.) Les fichiers php.ini, .htaccess ou la fonction ini_set() peuvent être utilisés pour définir unserialize_callback_func. Elle sera appelée chaque fois qu'une classe non actuellement définie sera instanciée. Pour désactiver cette fonctionnalité, il suffit de mettre la valeur de l'option au caractère nul.

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élinéarisé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élinéarisation.

Notes

Avertissement

null ou false est retourné soit dans le cas d'une erreur soit après avoir délinéarisé le résultat de la linéarisation 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

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