Estoy viendo esta función: serialize() para PHP y realmente no entiendo cuál es su función. ¿Alguien puede proporcionar un ejemplo simple con salida?No entiendo serialize()
Respuesta
Básicamente, el objetivo de serialize
es transformar cualquier tipo de datos (alsmost) en una cadena, por lo que se puede transmitir, almacenar, ...
Un ejemplo rápido:
$my_array = array(
'a' => 10,
'glop' => array('test', 'blah'),
);
$serialized = serialize($my_array);
echo $serialized;
le conseguirá este resultado:
a:2:{s:1:"a";i:10;s:4:"glop";a:2:{i:0;s:4:"test";i:1;s:4:"blah";}}
Y, más tarde, que c un unserialize
esa cadena, para obtener los datos originales de vuelta:
$serialized = 'a:2:{s:1:"a";i:10;s:4:"glop";a:2:{i:0;s:4:"test";i:1;s:4:"blah";}}';
$data = unserialize($serialized);
var_dump($data);
le conseguirá:
array
'a' => int 10
'glop' =>
array
0 => string 'test' (length=4)
1 => string 'blah' (length=4)
usos comunes incluyen:
- Capacidad de transmisión de (casi) cualquier tipo de datos de PHP desde un script PHP a otro
- Posibilidad de almacenar (casi) cualquier clase de datos PHP en un solo campo de base de datos - incluso si no es una buena práctica en el lado de la base de datos, a veces puede ser útil
- Posibilidad de almacenar datos en algún almacenamiento en caché MECANISMO (APC, memcached, archivos, ...), en el que puede almacenar sólo cadenas
Tenga en cuenta, sin embargo, que el uso de serialize
es grande cuando se está trabajando solamente con PHP (ya que es un PHP-específica formato, que puede funcionar con casi cualquier clase de datos PHP, y es realmente rápido); pero no es tan bueno cuando también tiene que trabajar con algo más que PHP (ya que es específico de PHP). En esos casos, puede utilizar XML, JSON (ver json_encode
y json_decode
), ...
en el manual de PHP, también se puede leer la sección Object Serialization, por cierto.
Si desea guardar una matriz u objeto normalizado en una fila de base de datos, por ejemplo, serialize()
(y unserialize()
) son sus amigos, porque no puede almacenar una matriz o un objeto aplanado sin antes convertirlo en una cadena.
json_encode()
y json_decode()
son similares, excepto que codifican como JSON.
Ver this example, debe ser bastante claro.
- 1. jQuery serialize no funciona
- 2. No entiendo horking
- 3. No entiendo este Código
- 4. Delegados, no entiendo bien
- 5. regex que no entiendo
- 6. No entiendo Dominios de aplicación
- 7. No entiendo completamente JavaScript Threading
- 8. No entiendo -Wl, -rpath -Wl,
- 9. No entiendo Jinja2 Call Blocks
- 10. No entiendo rubí ámbito local
- 11. No entiendo la declaración del método const
- 12. No entiendo este uso de la recursión
- 13. Ejemplo simple de bfs ... No lo entiendo
- 14. No entiendo este pitón Para el bucle
- 15. No entiendo este diagrama del tenedor()
- 16. ¿Qué no entiendo acerca de getline + strings?
- 17. Predecir() - Tal vez no lo entiendo
- 18. Plantilla Metaprogramación - Todavía no lo entiendo :(
- 19. No entiendo este ejemplo de un cierre
- 20. ¿Falta algo o simplemente no entiendo epoll?
- 21. No entiendo el punto de independencia persistencia
- 22. Python manipulación de variables, no entiendo que
- 23. No entiendo este ejemplo de fork()
- 24. Serialize Composed Func?
- 25. serialize() y $ _SESSION
- 26. PHP - * fast * serialize/unserialize?
- 27. Serialize árbol prefijo
- 28. No entiendo por qué el comando ForEach no funciona
- 29. Serialize enum como int
- 30. angularjs serialize form data