online - serialize jquery php
¿Para qué sirve la función serialize() de PHP? (4)
A menudo uso serialize
para almacenar información importante en la base de datos que no vale la pena crear un campo completamente nuevo, pero podría ser útil en el futuro.
Por ejemplo, si el usuario rellena un formulario del que solo guardo algunos elementos, pero quiero guardarlos todos en caso de que los necesite más adelante, serializaré el conjunto de elementos del formulario y lo almacenaré en la base de datos.
Acabo de enterarme de las funciones serialize()
y unserialize()
. ¿Cuáles son algunos usos para esto? Sé que la gente serializa cosas para poner en una base de datos. ¿Podría darme algunos ejemplos de usos en los que es útil?
También veo código serializado en javascript, ¿es esto lo mismo? ¿Se puede deserializar una cadena serializada en javascript con php unserialize()
?
A menudo veo datos almacenados en la base de datos, y realmente no me gusta esto:
- es realmente difícil trabajar en SQL con esa información: ¿cómo se escriben las condiciones en los datos serializados? Aún más difícil: ¿cómo lo actualizas? ¿Realmente escribes un script PHP que busca todas las líneas, las deserializa, las modifica, vuelve a serializarlas y las almacena de nuevo en DB? :-(
- El día en que desee migrar sus datos a otro software, requerirá más trabajo para migrar los datos (y aún tendrá más trabajo si el nuevo software no está escrito en PHP, por cierto)
Aún así, admito que es una manera fácil de almacenar datos no bien definidos ... y a veces lo uso para eso ...
Otro uso para la serialización es facilitar el intercambio de datos entre dos sistemas: el envío de objetos a través de algún tipo de servicio web, por ejemplo, requiere que se serialicen de alguna manera.
Si los dos sistemas son PHP, podría prever el uso de serialize
/ unserialize
. Pero, también aquí, ¿qué pasa si uno del sistema ya no es PHP? Usar JSON o SOAP es probablemente una mejor opción: un poco más difícil al principio, pero probablemente una solución a más largo plazo, ya que esos formatos también se conocen en otros idiomas.
Una cosa que uso la función de serialize
de PHP es almacenar datos en caché (como el caché de usuario de APC) , en una aplicación PHP: no puede almacenar objetos tal como están: tiene que serializarlos. Como la caché solo se usa en una aplicación, no es necesario utilizar un formato conocido en muchos idiomas; entonces, serialize está bien ... Y, para almacenar datos en caché, debes usar una función de serialización realmente rápida, y serializar es bastante rápido ^^
La serialización se usa cuando desea pasar datos fuera de PHP, por ejemplo a Javascript.
Sí, a menudo funciona para enviar cadenas, enteros y cadenas tal como son, pero no estructuras más complejas como matrices. Obtenga más información sobre cómo pasar una matriz de PHP a Javascript here .
También puede formatear sus datos como JSON que es ampliamente compatible en muchos idiomas, pero luego pierde los tipos nativos de PHP y sus propias clases cuando se convierte a ellos. Lea más acerca de JSON y PHP here .
PHP serialize le permite mantener una matriz u objeto en forma de texto. Al asignar matrices a cosas como $ _SESSION, permite que PHP lo almacene en un archivo de texto y luego lo vuelva a crear más tarde. Serialize se usa así para objetos y variables. (Solo asegúrate de haber declarado la clase que el objeto usa de antemano)
Wordpress, por otro lado, lo usa para un método muy similar, al almacenar las matrices serializadas directamente en una base de datos. Si mantiene una base de datos de claves => valores, esto podría ser muy beneficioso debido a la flexibilidad de las matrices, puede almacenar cualquier cosa en el parámetro de valor.
Y aquí está el enlace (cortesía del primer comentarista): http://us3.php.net/serialize