1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-26 08:02:09 +01:00
Files
archived-doc-fr/reference/igbinary/functions/igbinary-unserialize.xml
Samuel NELA ab29eee1aa Fix typos in magic methods documentation and change translation of serialization (#611)
Stop using "linéarisation" and instead use "sérialisation"
2023-09-20 22:11:41 +01:00

154 lines
6.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: aa19c140e6be8b9c324c32ace850dfc2911891a2 Maintainer: moradZahid Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.igbinary-unserialize" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<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>
<para>
Les entrées utilisateur non fiables ne doivent pas être passées à la fonction
<function>igbinary_unserialize</function>.
La désérialisation 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 <function>json_decode</function> et
<function>json_encode</function>) doit être utilisé pour passer des données sérialisées à l'utilisateur.
</para>
<para>
S'il est indispensable de désérialisation 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.
</para>
</warning>
<warning>
<para>
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.
</para>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>str</parameter></term>
<listitem>
<para>
La chaîne de caractères sérialisée, générée par <function>igbinary_serialize</function>.
</para>
<para>
Si la variable désérialisée est un &object;, après avoir réussi à le reconstruire,
PHP tentera automatiquement d'appeller les méthodes magiques
<link linkend="object.unserialize">__unserialize()</link> ou
<link linkend="object.wakeup">__wakeup()</link> (si l'une d'elles existe).
</para>
<para>
<note>
<title>La directive unserialize_callback_func</title>
<para>
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ésérialisation alors que cette dernière n'est pas actuellement
définie (afin d'éviter de créer un <type>object</type> de la classe
<literal>__PHP_Incomplete_Class</literal>.)
Les fichiers &php.ini;, &htaccess; ou la fonction <function>ini_set</function> peuvent être
utilisés pour définir <link linkend="ini.unserialize-callback-func">unserialize_callback_func</link>.
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.
</para>
</note>
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
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>.
</para>
<para>
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.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Les objets peuvent lancer un <classname>Throwable</classname> dans leur gestionnaire de désérialisation.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<para>
&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>.
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<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>
</para>
</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
-->