Sérialisation PHP : Guide complet pour sérialiser, désérialiser et convertir vos données

Sérialisation PHP : Guide complet pour sérialiser, désérialiser et convertir vos données

Maîtrisez la sérialisation PHP : serialize, unserialize, conversion JSON↔PHP. Guide pratique avec exemples concrets et bonnes pratiques de sécurité.

13.04.2026
9 min de lecture
Partager cet article:
php
serialization
unserialize
json
development
security

Qu'est-ce que la sérialisation PHP ?

La sérialisation PHP transforme des structures (tableaux, objets, scalaires) en une chaîne binaire textuelle que vous pouvez stocker en base, écrire dans un fichier ou transmettre sur le réseau — puis <strong>unserialize()</strong> reconstitue la valeur. C’est le mécanisme derrière les sessions PHP natives, de nombreux caches applicatifs, et des métadonnées WordPress. Pour convertir ou inspecter rapidement du PHP sérialisé sans installer d’extension, utilisez notre outil de sérialisation PHP en ligne. Ce guide couvre la syntaxe du format, la comparaison avec JSON, les risques de <code>unserialize()</code> sur des données non fiables, et des pistes concrètes (WordPress, alternatives sécurisées). Pour structurer des payloads web plutôt que du PHP natif, voyez aussi notre guide complet de la minification JSON et, lorsque vous relisez du code compacté, un minificateur JavaScript en ligne ou un déminificateur JS pour le débogage.

Sessions et caches : format compact et natif à l’écosystème PHP
Interopérable avec des outils en ligne pour déboguer des blobs sérialisés (WordPress, exports)
Comparaison claire avec JSON pour choisir le bon format (API vs stockage PHP)
Prise en compte explicite des risques d’object injection et des mitigations
Conversion bidirectionnelle JSON ↔ PHP utile pour les frontends et les APIs REST

Où la sérialisation PHP compte vraiment

Sessions, cache et plugins

Les sessions PHP stockent souvent des données sérialisées côté serveur ou dans un backend Redis/Memcached. Les frameworks et CMS sérialisent aussi des options, des queues de jobs ou des représentations d’objets pour les réhydrater plus tard. Comprendre le format aide à diagnostiquer des données corrompues ou migrer vers JSON.

Illustration conceptuelle : flux de données PHP et sérialisation

Avant optimisation

Taille des fichiers :Blob opaque
Temps de chargement :Debugging difficile

Après optimisation

Taille des fichiers :Structure lisible
Temps de chargement :Inspection rapide via outil
Cas d’usage fréquents

Voici des situations où vous croiserez du PHP sérialisé en production :

Options et métadonnées WordPress (transients, postmeta) souvent en format sérialisé
Caches applicatifs (clé → valeur sérialisée) pour éviter de reconstruire des objets coûteux
Files d’attente ou logs internes qui embarquent des snapshots de tableaux PHP
Interop : exporter une structure PHP vers une chaîne avant conversion JSON côté API
Vue d’ensemble du format

Avant une migration ou un remplacement SQL, visualisez les imbrications (tableaux dans tableaux, chaînes typées) pour éviter de corrompre les longueurs déclarées dans les segments s:n:"…".

Diagramme des types et imbrications du format PHP serialize

WordPress, migrations et hygiène

WordPress : options, transients, metas

Beaucoup de metas sont stockées en sérialisé. Avant une recherche/remplacement SQL massive (changement d’URL), désérialisez et resérialisez proprement — sinon vous cassez la longueur des chaînes dans le format s:n:"...". Utilisez des outils dédiés ou des scripts PHP, et vérifiez avec l’outil FastMinify sur des copies.

Toujours tester sur une staging avec une base copiée
Préférer les API WordPress (update_option, metadata) aux hacks SQL bruts
Si vous exposez une API REST, sérialisez en JSON côté sortie — pas de PHP serialize public
Checklist sécurité et maintenance

Alignez-vous sur les recommandations OWASP : aucune désérialisation de données arbitraires, journalisation des anomalies, rotation des secrets si un cache a pu être empoisonné.

Signer ou chiffrer les blobs sensibles stockés hors session serveur
Coupler JSON côté front et validation (schéma) avec minify JSON pour les payloads production
Documenter les champs encore en PHP serialize pour planifier leur extinction
Former les équipes : le format n’est pas un mécanisme de sécurité par lui-même

serialize(), unserialize() et lecture du format

De PHP vers une chaîne sérialisée

La fonction serialize() produit une représentation textuelle typée ; unserialize() restaure la valeur. Exemple minimal avec un tableau associatif :

Avant

<?php $user = ['id' => 42, 'name' => 'Ada', 'roles' => ['editor', 'reviewer']]; echo serialize($user);

Après

a:3:{s:2:"id";i:42;s:4:"name";s:3:"Ada";s:5:"roles";a:2:{i:0;s:6:"editor";i:1;s:8:"reviewer";}}
Lire la notation type par type

Chaque segment commence par un code de type suivi de deux-points. Savoir lire ce format aide à débugger sans exécuter du code arbitraire sur des données inconnues.

a:N:{...} : tableau avec N entrées (paires clé → valeur pour tableaux associatifs)
i:123 ; d:3.14 ; b:0|1 : entier, flottant, booléen
s:n:"..." : chaîne de longueur n octets (attention encodage UTF-8)
O:8:"ClassName" : objet — c’est là qu’un unserialize() non maîtrisé devient dangereux
Pour inspecter visuellement : collez la chaîne dans notre outil en ligne plutôt que d’évaluer sur la production

Sérialiser, désérialiser et convertir avec FastMinify

Workflow rapide dans le navigateur

Collez une chaîne sérialisée ou du JSON, choisissez l’opération (beautify, minify, conversion JSON ↔ PHP). Le traitement reste côté client : pratique pour un export WordPress ou une API qui renvoie du PHP sérialisé historique.

Interface de l’outil FastMinify pour PHP serialize et conversions
1

Coller la donnée

Importez la chaîne issue de la base (postmeta, option, cache) ou un JSON à convertir.

2

Choisir l’action

Sérialiser, désérialiser, ou convertir vers/depuis JSON selon votre besoin immédiat.

3

Valider hors production

Comparez le résultat avec ce qu’attend votre application ; ne réinjectez jamais unserialize() sur des données non approuvées.

Pourquoi un outil en ligne ici ?

Les équipes mixtes (PHP + frontend) gagnent du temps pour inspecter un blob sans monter un environnement complet.

Idéal pour un one-shot : pas de composer/npm requis pour la lecture
Complète un minificateur JSON (page /fr/minify-json) lorsque vous normalisez des payloads
Utile en support client pour expliquer visuellement un problème de métadonnées
Gratuit et orienté confidentialité : pas d’envoi serveur des données saisies

JSON, PHP serialize et sécurité

JSON vs PHP serialize : que choisir ?

JSON est universel pour les APIs et les navigateurs ; PHP serialize est idiomatique pour le stockage interne PHP riche en types. Pour des échanges HTTP, préférez JSON ; pour des blobs gérés uniquement par PHP, serialize peut rester pertinent.

Exemple de base

<?php $data = ['ok' => true, 'count' => 3]; $json = json_encode($data, JSON_THROW_ON_ERROR); // {"ok":true,"count":3}

Configuration

<?php $same = ['ok' => true, 'count' => 3]; $php = serialize($same); // a:2:{s:2:"ok";b:1;s:5:"count";i:3;}

Utilisation

// Interop : json_decode pour les entrées API ; unserialize UNIQUEMENT sur données signées/contrôlées.
unserialize() et données non fiables

Ne jamais unserialize() une entrée utilisateur brute : risque d’injection d’objet et d’exécution de gadgets (__wakeup, __destruct). Préférez JSON + schéma, ou des formats signés (HMAC) et des allowlists de classes.

Exemple de base

<?php // Dangereux — à proscrire sur une entrée HTTP // $obj = unserialize($_POST['payload']);

Utilisation

<?php $payload = $_POST['json'] ?? '{}'; $safe = json_decode($payload, true, 512, JSON_THROW_ON_ERROR); // Tableau scalaire : pas d’instanciation d’objets arbitraires
Alternatives côté stockage

Pour de gros volumes binaires, igbinary ou msgpack réduisent la taille tout en restant côté infrastructure maîtrisée — hors sujet navigateur, mais utile en complément d’une stratégie JSON pour l’API publique.

Configuration

// Exemple conceptuel (extension igbinary requise) // $packed = igbinary_serialize($data);

Utilisation

// Déploiement : migrer progressivement les blobs legacy vers JSON + validation schéma

Conclusion

La sérialisation PHP reste un pilier du stockage interne et des écosystèmes comme WordPress, mais elle impose une discipline stricte côté unserialize(). Pour le debug rapide et les conversions JSON, un outil en ligne fiable accélère le diagnostic sans toucher à la production. Gardez JSON pour les frontières réseau, PHP serialize pour les zones de confiance, et mesurez toujours l’impact avant migration.

Sérialisez, désérialisez ou convertissez vos données PHP en quelques clics

Rejouer les conversions sur une copie de données avant déploiement
Couvrir les chemins critiques avec des tests qui valident json_encode/json_decode
Enrichir le maillage : guide JSON du blog et outils minify associés
Surveiller les alertes sécurité liées aux gadgets d’objets dans vos dépendances
Partager cet article
Partager cet article:
Sérialisation PHP : Guide complet pour sérialiser, désérialiser et convertir vos données