# Sérialisation

> Conversion d'une structure de données PHP (tableau, objet) en une chaîne de texte stockable ou transmissible, puis reconstructible à l'identique.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/serialisation/

Une base de données ou un fichier ne sait stocker que du texte ou des types simples, jamais directement un tableau PHP avec sa structure. La sérialisation transforme cette structure en une chaîne qui décrit fidèlement son contenu, un peu comme on démonte un meuble en pièces numérotées pour le transporter, avant de le remonter à l'identique de l'autre côté.

## Fonctionnement en PHP

Les fonctions natives `serialize()` et `unserialize()` effectuent cette conversion dans un format propre à PHP, préfixé par des indicateurs de type et de longueur (`a:2:{...}` pour un tableau de deux éléments). C'est différent du format JSON, plus universel mais qui ne conserve pas certaines subtilités des objets PHP.

## Dans WordPress

La table `wp_options` et les métadonnées de `wp_postmeta` stockent couramment des tableaux sérialisés : quand on enregistre un tableau de réglages avec `update_option()`, WordPress le sérialise automatiquement via sa fonction utilitaire `maybe_serialize()`, et le désérialise à la lecture avec `maybe_unserialize()`.

## Exemple

```
$reglages = ['couleur' => 'bleu', 'taille' => 12];
update_option('wpm_reglages', $reglages);
// stocké en base sous la forme :
// a:2:{s:7:"couleur";s:4:"bleu";s:5:"taille";i:12;}
```

## Pièges fréquents

Modifier à la main une chaîne sérialisée en base de données (par exemple lors d'un remplacement d'URL après une migration) casse le comptage de longueur intégré au format et rend la donnée illisible ; il faut passer par un outil dédié à la sérialisation, pas par un simple rechercher-remplacer. Ne jamais non plus appeler `unserialize()` sur une donnée venant d'un utilisateur non fiable, car cela peut déclencher l'exécution de code via des objets malveillants.
