我正在编写使用数据库的 PHP 代码。为此,我使用一个数组作为哈希映射。每次从我的数据库中添加或删除内容时,我都会将其保存到文件中。
我的数据库结构迫使我使用这种方法,不能使用 mysql 或任何其他标准数据库(学校项目,所以结构保持原样)。
我构建了两个功能:
function saveDB($db){
$json_db = json_encode($db);
file_put_contents("wordsDB.json", $json_db);
} // saveDB
function loadDB(){
$json_db = file_get_contents("wordsDB.json");
return json_decode($json_db, true);
} // loadDB
当回显编码后或从文件加载后得到的字符串时,我得到一个有效的 json(在 json 查看器上测试)每当我尝试使用解码字符串json_decode()
时,我得到 null(用 测试它var_dump()
)。
json 字符串本身很长(约 200,000 个字符,仅用于测试)。
我尝试了以下方法:
- 手动和使用
str_replace()
. - 在 json 字符串前后添加引号。
- 更改页面的编码。
- 解码而不保存到文件(编码后立即)。
- 检查斜杠和反斜杠。一个都找不到。
- 试过了
addslashes()
。 - 尝试使用各种“转义字符串”变体。
json_last_error()
不起作用。我没有收到错误号(获取 null,而不是 0)。
这不是我的服务器,所以我不确定使用的是什么 PHP 版本,也无法升级/降级/安装任何东西。
我相信大小与它有关,因为小字符串似乎工作正常。
谢谢大家 :)