Markdown.es Logo Markdown.es

¿Te es útil esta web? Apóyala sin coste: si compras en Amazon, hazlo a través de nuestro enlace de afiliado — el precio es el mismo para ti y nos ayuda a seguir.

Utilidades

PHP Serialize y Unserialize

Convierte datos serializados de PHP a JSON legible, o genera el formato serializado a partir de un JSON.

Datos serializados
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:

TipoFormatoEjemplo
Cadenas:longitud:"valor";s:3:"Ada";
Enteroi:valor;i:42;
Decimald:valor;d:19.95;
Booleanob:0 o b:1;b:1;
NuloN;N;
Arraya:n:{clave;valor;…}a:1:{i:0;s:2:"ok";}
ObjetoO: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

¿Qué es el formato serializado de PHP? Es la representación en texto que genera la función 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.
¿Por qué me encuentro esto en WordPress? WordPress guarda las opciones y los metadatos como datos serializados en la base de datos. Si alguna vez has abierto la tabla wp_options y has visto cadenas llenas de a:3:{s:5:...}, eso es exactamente esto.
¿Por qué se rompen los datos al cambiar de dominio? Porque el formato guarda la longitud de cada cadena. Si haces un buscar y reemplazar del dominio directamente en la base de datos, el texto cambia de longitud pero el número no, y PHP ya no puede leer el dato. Por eso hay que usar herramientas que reserialicen correctamente.
¿Admite objetos, no solo arrays? Sí, se interpretan los objetos serializados y se muestran como un JSON con su nombre de clase y sus propiedades, aunque el JSON resultante no puede representar la clase en sí.
Todo ocurre en tu navegador

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.

¿Buscas una app para instalar?

80+ Apps Markdown

El directorio más completo en español. Filtra por plataforma, precio y uso.

Ver Aplicaciones →