Convertisseur JSON Object en Serialized PHP Object
Sérialisez et désérialisez facilement des données en PHP avec notre outil polyvalent de sérialisation et de désérialisation PHP. Cet utilitaire en ligne est idéal pour les développeurs qui souhaitent convertir des structures de données complexes en chaînes stockables, puis les récupérer dans leur forme d’origine. Gérez vos données avec précision et efficacité sans installer de logiciel. Améliorez votre flux de développement PHP grâce à cet outil convivial et fiable.
Foire aux questions
Pour sérialiser des données en PHP, saisissez votre structure de données (tableau, objet ou valeur scalaire) dans le champ prévu, puis cliquez sur le bouton de sérialisation. L’outil convertit les structures de données complexes en chaînes stockables à l’aide du protocole de sérialisation de PHP ; vous obtenez une représentation qui peut être enregistrée dans des fichiers ou des bases de données, ou transmise sur des réseaux.
Pour désérialiser des données en PHP, saisissez la chaîne sérialisée (qui commence généralement par un indicateur de format tel que a:, s: ou O:) dans le champ prévu, puis cliquez sur le bouton de désérialisation. L’outil reconstruit la structure de données d’origine à partir de la chaîne, en rétablissant exactement les tableaux, les objets et les valeurs tels qu’ils étaient avant la sérialisation.
La sérialisation convertit les structures de données complexes en chaînes stockables. Elle permet de conserver durablement les données dans des fichiers ou des bases de données, de les transmettre sur des réseaux, de stocker les données de session, d’utiliser des mécanismes de mise en cache et des charges utiles de files de messages, et de préserver l’état des objets entre les requêtes. La désérialisation récupère les données d’origine pour les réutiliser.
PHP sérialise les chaînes de caractères, les entiers, les nombres à virgule flottante, les booléens, les tableaux, les objets et les valeurs NULL. Il préserve les clés des tableaux, les propriétés des objets (publiques, protégées et privées), les structures imbriquées et les types de données. En revanche, les ressources (comme les connexions à une base de données ou les descripteurs de fichiers) ne peuvent pas être sérialisées et nécessitent un traitement spécifique.
Oui, des attaques par injection d’objets PHP peuvent survenir lors de la désérialisation de données non fiables. Les attaquants peuvent créer des chaînes sérialisées malveillantes qui déclenchent l’exécution de code par le biais de méthodes magiques (__wakeup, __destruct). Ne désérialisez jamais des données saisies par l’utilisateur ou provenant de sources externes sans les valider. Utilisez JSON pour les données non fiables ou définissez des restrictions allowed_classes.
Oui, PHP sérialise les objets personnalisés en préservant toutes leurs propriétés et leurs valeurs. Toutefois, les définitions de classe doivent être chargées avant la désérialisation pour reconstruire correctement les objets. Utilisez le chargement automatique, incluez les fichiers de classe ou implémentez les méthodes magiques __sleep() et __wakeup() pour personnaliser le comportement de sérialisation.
La sérialisation PHP serialize() préserve exactement les types de données, les propriétés privées et protégées ainsi que les informations de classe des objets, mais ne fonctionne que dans PHP. JSON est indépendant du langage, lisible, adapté au web et compatible avec tous les langages, mais ne conserve pas les propriétés privées ni les types PHP exacts. Utilisez serialize() pour le stockage réservé à PHP et JSON pour les API et l’interopérabilité.
PHP sérialise automatiquement les données de session ($_SESSION) pour les conserver entre les requêtes. Lorsque vous stockez des tableaux ou des objets dans les sessions, PHP les sérialise dans des fichiers ou des bases de données, puis les désérialise au chargement des pages suivantes. Cela permet de conserver l’état des utilisateurs, les paniers d’achat et l’authentification d’une visite à l’autre.
Oui, vous pouvez stocker des données sérialisées dans des colonnes de base de données TEXT ou BLOB. Toutefois, leur sérialisation complique les requêtes, l’indexation et la recherche. Utilisez la sérialisation pour stocker des objets complets comme des unités uniques, mais préférez JSON ou des tables normalisées si vous devez interroger des champs individuels ou gérer des relations entre les données.
Les données sérialisées utilisent des préfixes de format : s:5:"hello" (chaîne), i:42 (entier), a:2:{...} (tableau), O:4:"User" (objet). Les nombres indiquent une longueur ou un décompte. Ce format est compact, mais illisible pour un humain. Utilisez notre outil pour convertir le format sérialisé JSON en format lisible PHP et inversement, afin de déboguer et manipuler les données.
Désérialisez les données pour inspecter leur structure, utilisez print_r() ou var_dump() sur les valeurs désérialisées, convertissez-les en JSON pour les rendre plus lisibles, vérifiez que la sérialisation n'est pas incomplète ou qu'il n'y a pas de corruption, vérifiez la disponibilité des classes pour les objets et utilisez notre outil pour visualiser et comprendre des structures sérialisées complexes.
La sérialisation standard de PHP ne supporte pas les fermetures. Utilisez des packages comme Opis Closure ou SerializableClosure de Laravel pour cette fonctionnalité. Les fonctions et méthodes ordinaires des objets peuvent être sérialisées si elles sont définies dans des classes, mais les fonctions anonymes nécessitent un traitement spécial.
__sleep() s’exécute avant la sérialisation et renvoie un tableau des propriétés à sérialiser (utile pour en exclure certaines). __wakeup() s’exécute après la désérialisation pour effectuer l’initialisation. __serialize() et __unserialize() (PHP 7.4+) offrent davantage de contrôle. Implémentez-les pour personnaliser le comportement de sérialisation de vos classes.
Désérialisez les données PHP existantes, convertissez-les en tableaux ou en objets stdClass, puis encodez-les en JSON. Mettez votre code à jour pour utiliser json_encode()/json_decode() au lieu de serialize()/unserialize(). JSON est plus sûr, plus lisible et plus compatible, mais vous perdrez les propriétés privées et la préservation exacte des types qu’offre la sérialisation.