1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
archived-doc-fr/reference/igbinary/functions/igbinary-unserialize.xml
2026-03-01 00:02:02 +01:00

149 lines
6.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 43dd38b94fbf8a9e3efc9c5bfde27c14b9e2ce9c Maintainer: moradZahid Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="function.igbinary-unserialize">
<refnamediv>
<refname>igbinary_unserialize</refname>
<refpurpose>
Crée une variable PHP à partir d'une valeur sérialisée par <function>igbinary_serialize</function>
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>igbinary_unserialize</methodname>
<methodparam><type>string</type><parameter>str</parameter></methodparam>
</methodsynopsis>
<simpara>
<function>igbinary_unserialize</function> prend une variable sérialisée par
<function>igbinary_serialize</function> et la convertit en une variable PHP.
</simpara>
<warning>
<simpara>
Les entrées utilisateur non fiables ne doivent pas être passées à la fonction
<function>igbinary_unserialize</function>.
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 <function>json_decode</function> et
<function>json_encode</function>) doit être utilisé pour passer des données sérialisées à l'utilisateur.
</simpara>
<simpara>
S'il est indispensable de désérialiser des données sérialisées provenant de l'extérieur, la fonction
<function>hash_hmac</function> peut être utilisée pour valider les données.
Il est important de vérifier que personne n'a altéré les données.
</simpara>
</warning>
<warning>
<simpara>
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.
</simpara>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>str</parameter></term>
<listitem>
<simpara>
La chaîne de caractères sérialisée, générée par <function>igbinary_serialize</function>.
</simpara>
<simpara>
Si la variable désérialisée est un &object;, après avoir réussi à le reconstruire,
PHP tentera automatiquement d'appeler les méthodes magiques
<link linkend="object.unserialize">__unserialize()</link> ou
<link linkend="object.wakeup">__wakeup()</link> (si l'une d'elles existe).
</simpara>
<note>
<title>
La directive <link linkend="ini.unserialize-callback-func">unserialize_callback_func</link>
</title>
<simpara>
La fonction de rappel spécifiée dans la directive
<link linkend="ini.unserialize-callback-func">unserialize_callback_func</link>
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 <classname>__PHP_Incomplete_Class</classname>.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
La valeur convertie est retournée par la fonction, et peut être de type <type>&boolean;</type>,
<type>&integer;</type>, <type>&float;</type>, <type>&string;</type>,
<type>&array;</type>, <type>&object;</type>, ou de type <type>null</type>.
</simpara>
<simpara>
Si la chaîne de caractères passée ne peut pas être désérialisée, cette fonction retourne &false;
et un diagnostic <constant>E_NOTICE</constant> ou <constant>E_WARNING</constant> est émis.
</simpara>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<simpara>
Les objets peuvent lancer un <classname>Throwable</classname> dans leur gestionnaire de désérialisation.
</simpara>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<simpara>
&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 <parameter>str</parameter> avec le résultat de l'exécution
de <code>igbinary_serialize(null)</code> ou de <code>igbinary_serialize(false)</code>
ou bien en attrapant un diagnostic <constant>E_NOTICE</constant>.
</simpara>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>unserialize</function></member>
<member><function>json_encode</function></member>
<member><function>json_decode</function></member>
<member><function>hash_hmac</function></member>
<member><function>igbinary_serialize</function></member>
<member><link linkend="language.oop5.autoload">Auto-chargement de classes</link></member>
<member><link linkend="ini.unserialize-callback-func">unserialize_callback_func</link></member>
<member><link linkend="object.wakeup">__wakeup()</link></member>
<member><link linkend="object.serialize">__serialize()</link></member>
<member><link linkend="object.unserialize">__unserialize()</link></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->