PHP Serialize y Unserialize
Convierte datos serializados de PHP a JSON legible, o genera el formato serializado a partir de un JSON.
Cómo se lee el formato
Cada valor se escribe con una letra de tipo, dos puntos y su contenido. Una vez conoces las letras, se lee sin dificultad:
| Tipo | Formato | Ejemplo |
|---|---|---|
| Cadena | s:longitud:"valor"; | s:3:"Ada"; |
| Entero | i:valor; | i:42; |
| Decimal | d:valor; | d:19.95; |
| Booleano | b:0 o b:1; | b:1; |
| Nulo | N; | N; |
| Array | a:n:{clave;valor;…} | a:1:{i:0;s:2:"ok";} |
| Objeto | O:len:"Clase":n:{…} | O:4:"User":1:{…} |
El problema de las migraciones de WordPress
Fíjate en que la cadena guarda su longitud: s:3:"Ada".
Ese 3 tiene que coincidir exactamente con los caracteres que hay entre comillas.
Por eso, si migras un sitio y haces un buscar y reemplazar de
antiguo.es por
nuevodominio.es directamente
con SQL, todas las longitudes quedan desfasadas y PHP no puede leer esos datos: los
widgets desaparecen y las opciones vuelven a sus valores por defecto. La solución es usar
una herramienta que deserialice, reemplace y vuelva a serializar con las longitudes correctas.
Preguntas frecuentes
serialize() de PHP para guardar estructuras de datos. Aparece en tablas de WordPress, en sesiones y en cachés, y no es legible a simple vista. wp_options y has visto cadenas llenas de a:3:{s:5:...}, eso es exactamente esto. Esta utilidad se ejecuta enteramente en tu equipo con JavaScript. Lo que escribes o pegas no se envía a ningún servidor, no se guarda y no queda registrado en ninguna parte.
Utilidades relacionadas
¿Buscas una app para instalar?
80+ Apps Markdown
El directorio más completo en español. Filtra por plataforma, precio y uso.