
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é.
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.
Où la sérialisation PHP compte vraiment
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.

Avant optimisation
Après optimisation
Voici des situations où vous croiserez du PHP sérialisé en production :
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:"…".

WordPress, migrations et hygiène
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.
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é.
serialize(), unserialize() et lecture du format
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";}}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.
Sérialiser, désérialiser et convertir avec FastMinify
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.

Coller la donnée
Importez la chaîne issue de la base (postmeta, option, cache) ou un JSON à convertir.
Choisir l’action
Sérialiser, désérialiser, ou convertir vers/depuis JSON selon votre besoin immédiat.
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.
Les équipes mixtes (PHP + frontend) gagnent du temps pour inspecter un blob sans monter un environnement complet.
JSON, PHP serialize et sécurité
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.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 arbitrairesPour 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émaConclusion
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.
Articles connexes

Apprenez à minifier vos fichiers XML pour optimiser vos sitemaps, flux RSS et fichiers de configuration. Réduisez la taille de vos XML de 20 à 50%.

Decouvrez comment optimiser et minifier vos fichiers SVG pour des sites web plus rapides. Reduisez la taille de vos SVG de 30 a 70% sans perte de qualite visuelle.

Apprenez à minifier votre code HTML pour des pages web plus rapides. Supprimez les espaces, commentaires et attributs inutiles pour réduire la taille de vos pages de 15 à 40%.