我的PHP反序列化有什么问题?

时间:2011-06-22 19:02:51

标签: php serialization fopen

我有一个包含以下内容的文件:

a:12:{s:12:"a2.twimg.com";i:1308768611;s:12:"a1.twimg.com";i:1308768611;s:12:"a0.twimg.com";i:1308768612;s:12:"a3.twimg.com";i:1308768612;s:8:"this.com";i:1308768613;s:15:"f.prototype.com";i:1308768613;s:15:"c.prototype.com";i:1308768614;s:15:"a.prototype.com";i:1308768614;s:5:"w.com";i:1308768615;s:5:"s.com";i:1308768615;s:5:"f.com";i:1308768615;s:5:"h.com";i:1308768615;}

(这是twitter.com上列出的一系列域名作为键,时间戳作为值)

如果我打电话:

unserialize(fread($recentfile, filesize("./neptune_output/recent"))) 

"./neptune_output/recent"$recentfile

的位置

它失败了,但如果我用粘贴的字符串调用unserialize,它就可以了。

我使用以下代码打开文件。

$recentfile = fopen("./neptune_output/recent", 'a+')

我已尝试将fopen模式设为'c+''a+b'但不起作用。

我是否需要发布更多代码?

2 个答案:

答案 0 :(得分:3)

为什么不用file_get_contents()阅读它而不是搞乱打开它并计算文件大小?

答案 1 :(得分:1)

a +表示:“打开以进行读写;将文件指针放在文件的末尾。如果文件不存在,请尝试创建它。”

如果您只想阅读“r”就足够了:

$recentfile = fopen("./neptune_output/recent", 'r')

请参阅http://nl2.php.net/manual/en/function.fopen.php