[字号:  ]

序列化数据怎么存储?

发布时间:2008-11-20 22:59   作者: 某个人   信息来源: PHPChina 开源社区门户
比如说。我有个数组
array(
"a"=>1,
"b"=>2,
"c"=>3.
"d"=>4
)
如何存储在文件里呢?
取出来后又如何读呢?

最新回复

kukat at 2008-11-20 23:03:08
转成json 然后写入到文件或者数据库,要用的时候读出来再转成数组
某个人 at 2008-11-20 23:21:15
麻烦楼上的看我题目。。我知道是序列化成json。。。问题是怎么输出到文件里面。。。我不想用io形式。
而是.php文件存储一个数组。
比如说
<?php
$list=array(
        "list"=>""
        );
?>
把我上面的数组序列化后存储在list里面去。
kukat at 2008-11-20 23:36:06
呵呵,是我没理解楼主的意思
你是要实现 “持久缓存”?
idgnarn at 2008-11-20 23:55:33
$b=array();
$a=serialize($b);
$c=unserialize($a);
hayund at 2008-11-21 00:00:00
进来学习的
某个人 at 2008-11-21 00:27:49

QUOTE:

原帖由 kukat 于 2008-11-20 23:36 发表
呵呵,是我没理解楼主的意思
你是要实现 “持久缓存”?
啊啊。可以这么理解。。。
yafeikf at 2008-11-21 08:25:33
LS正解
ly5 at 2008-11-21 18:09:46

QUOTE:

原帖由 idgnarn 于 2008-11-20 23:55 发表
$b=array();
$a=serialize($b);
$c=unserialize($a);
使用serialize和unserialize序列化对象为可存储文本
ajaxer at 2008-11-21 18:13:12
恩对,serialize,unserialize,数组,对象都可以。
wbsifan at 2008-11-21 20:40:23

QUOTE:

原帖由 某个人 于 2008-11-20 23:21 发表
麻烦楼上的看我题目。。我知道是序列化成json。。。问题是怎么输出到文件里面。。。我不想用io形式。
而是.php文件存储一个数组。
比如说

把我上面的数组序列化后存储在list里面去。
不想用IO模式.
那就用MYSQL缓存


name   缓存名  如上面的 list
con     内容       序例化后的内容
time    保存时的时间  

可以设置一个过期时间,如3600秒
用的时候从数据库读,
如果当前时间<=time+3600]
直接 返回  con,返序例化

若已过期,再进行其它的操作.

不要一看到查数据库就认为肯定比文件保存慢!
其实不然, 数据库本身也是保存在文件,而且对于磁盘进行过精心优化.
这种内容少但是数量多的缓存
用MYSQL肯定比文件来得快!
某个人 at 2008-11-21 22:34:18
我现在的解决方案用的DZ的缓存机制。。。是用的文件,是文件内的数组。require进来就能用。。觉得这样足够了
liexusong at 2008-11-22 00:28:07
早应该这样做,方便而且效率高!
某个人 at 2008-11-22 01:55:39
有时候很容易被一些束缚阻碍自己的脚步。。。左想想效率,又想想实现难度。一会一个主意,然后全部都实现。最后删掉不满意的,留下满意的。。。虽然慢点。我觉得这样学php才叫实在。。
LeoPHP at 2008-11-22 08:30:47
有没有人想过用xml
idgnarn at 2008-11-22 13:30:48
我都是用xml做描述
然后转储成PHP文件后require
每次都解析xml代价太大
飓飞 at 2008-11-22 14:17:27
var_export
ljxok2001 at 2008-11-22 14:28:43
file_put_contents($filename, "<?php return ".var_export($arr, 1).";");