我刚刚学习了serialize()
和unserialize()
函数。这有什么用呢?我知道人们会把东西序列化放到数据库里。你能给我一些有用的用法的例子吗?
我也在javascript中看到序列化的代码,这是相同的吗?javascript中的序列化字符串可以用php unserialize()
取消序列化吗?
发布于 2009-07-24 15:07:43
PHP serialize允许您以文本形式保存数组或对象。当将数组赋值给$_SESSION之类的东西时,它允许PHP将其存储在文本文件中,然后在以后重新创建它。对于对象和变量,Serialize就是这样使用的。(只需确保事先声明了对象使用的类)
另一方面,Wordpress将其用于非常类似的方法,通过将序列化的数组直接存储在数据库中。如果您保留一个键值值数据库,这将是非常有益的,因为数组的灵活性,您可以在=>参数中存储任何内容。
这里是链接(由first commentor提供):http://us3.php.net/serialize
发布于 2009-07-25 08:22:55
我经常在数据库中看到序列化的数据存储,我真的不喜欢这样:
使用
不过,我承认这是一种存储定义不明确的数据的简单方法……我有时也会用它来做这个...
序列化的另一个用途是促进两个系统之间的数据交换:例如,通过某种way服务发送对象需要以某种方式对其进行序列化。
如果这两个系统都是PHP,那么您可以考虑使用serialize
/unserialize
。但是,在这里,如果其中一个系统不再是PHP怎么办?使用JSON或SOAP可能是更好的选择:一开始有点困难,但可能是更长期的解决方案,因为这些格式在其他语言中也是已知的。
我使用PHP的serialize
函数的一件事是在应用程序中将数据存储在缓存中(就像APC的用户缓存一样):您不能按原样存储对象:您必须序列化它们。因为缓存只由一个应用程序使用,所以没有必要使用许多语言都知道的格式;因此,serialize是可以的……而且,要在缓存中存储数据,您应该使用一个非常快的序列化函数--序列化非常快^^
发布于 2009-07-24 15:12:35
我经常使用serialize
在数据库中存储重要信息,这些信息不值得为其创建一个全新的字段,但在将来可能会有用。
例如,如果用户填写了一个表单,而我只存储了其中的几个元素,但我希望保留所有这些元素,以备将来需要时使用,那么我将序列化表单元素数组并将其存储在数据库中。
https://stackoverflow.com/questions/1180602
复制相似问题