从本地主机移动到实时网络时读取序列化 .txt 文件时出现问题

Issues reading serialized .txt file when moving from localhost to live web

我将序列化数组存储在 .txt 文件中。我有 php 代码,它使用 file_get_contents 读取数组并显示文本文件中的信息。

将内容放入文件中:

file_put_contents($filename, serialize($data));

从文件中读取内容:

 $data = unserialize(file_get_contents($filename));

在我的本地主机上读取文本文件时一切正常。

我最近将文件推送到网络服务器。

传输的.txt 文件内容完全相同,但在网络服务器上相同的代码不会读取文本文件。这些文件包含所有序列化数据,但代码 returns 在从本地主机传输到 Web 服务器后为空。

如果我重新生成序列化数组并直接在服务器上创建 .txt 文件,代码运行正常。

我想知道是否有人遇到过类似的问题,我该如何解决。我认为这可能是编码或文件传输的问题,但很好奇 Whosebug 宇宙的想法。

我在序列化数据时使用 base64_encode 解决了这个问题:

file_put_contents($filename, base64_encode(serialize($data)));

并在反序列化数据时使用 base64_decode:

$data = unserialize(base64_decode(file_get_contents($filename)));

不幸的是,我仍然不得不删除并重新生成所有的文本文件,但一旦完成,现在看来一切 written/read 都是正确的。希望这对以后遇到类似问题的其他人有所帮助。