我对serialize不是很理解,问一些相关问题 Serialize 用来将一个语言实体(对象、数组、函数等)序列化成一个字符串以便存储,Unserialize 则执行逆操作,将一个字符串恢复成原来的语言实体。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码里的问题$fd=unserialize($files);/*上面这行为什么必须写成$files = implode("", @file("store"));才正确?*/ $files=file("store");$fd=unserialize($files);如果我的store里只有一行字符,那么这样正确吗? 你写入的是序列化后的字符串,取出时也应该把全部内容都取出来,所以要用$files = implode("", @file("store"));读出文件内容,也可以用fread/fgets/file_get_contents等。记住,serialize是序列化数组的,成为一个字符串。而unserialize就是将这个字符串反序化为数组。所以unserialize的参数是一个字符串,而不是一个数组。 不管你是多少行,那样写都是错误的。unserialize的参数是一个字符串,这个字符串就是serialize一个数组的结果。我看你还是先看看手册,两个函数是干什么的吧。 $fd=unserialize($files['0']);我改成这样,是否就始终正确? 如果文件只有一行,且这样写$fd=unserialize(trim($files['0']));也可以。你可以尝试一下。 /*上面这行为什么必须写成$files = implode("", @file("store"));才正确?*/这是对的函数unserialize需要一个字符做为串参数而file函数返回的是一个数组 请教zend studio运行时报错的问题,谢谢 [分享]正则表达式分析/提取XML/XHTML标签属性 c/s => b/s需要解决的问题 用phpmyadmin导出的数据库文件没有编码! 急求,windows环境下php4.3.X+apache2.2无法运行 终端命令行调试PHP程序,安装什么包,可以变成中文? 用正则表达式判断一个字符出现的下限但是上限是无穷的,怎么写? 为什么页面不能调出数据库里内容? 一个程序,大家帮我看看 繁简转换的一个问题。。。。 用JS的URL方式如何向另一个页面传值? 请教PHP捕捉SQL SERVER触发器错误的问题
$fd=unserialize($files);
/*上面这行为什么必须写成$files = implode("", @file("store"));才正确?*/
$fd=unserialize($files);如果我的store里只有一行字符,那么这样正确吗?
$files = implode("", @file("store"));
读出文件内容,也可以用fread/fgets/file_get_contents等。记住,serialize是序列化数组的,成为一个字符串。而unserialize就是将这个字符串反序化为数组。所以unserialize的参数是一个字符串,而不是一个数组。
我改成这样,是否就始终正确?
$fd=unserialize(trim($files['0']));
也可以。你可以尝试一下。
函数unserialize需要一个字符做为串参数
而file函数返回的是一个数组