PHP 将 null 写入 JSON 文件

标签 php json

我看过类似的帖子,但我似乎无法弄清楚。我有一个小型 PHP 脚本,用于读取表单输入并将其写入 JSON 文件,如下所示 –

  $file = 'data.json';

  $arr_data = array();

  $formdata = array(
        'name' => strip_tags( trim($_POST['formName']) ),
        'email' => $email,
        'phone' => strip_tags( trim($_POST['formPhone']) ),
        'message' => strip_tags( trim($_POST['formMessage']) )
        // also tested this just using reg strings
  );

  $jsondata = file_get_contents($file);

  //var_dump($jsondata); returns whatever string content is in the file, so seems to work

  $arr_data = json_decode($jsondata, true);

  array_push($arr_data, $formdata);

  //var_dump($arr_data); returns NULL, not sure what happens here

  $jsondata = json_encode($arr_data, JSON_PRETTY_PRINT);

  file_put_contents($file, $jsondata);

有什么想法吗?使用 PHP 5.5.9 检查文件是否可写。这两个文件都有 UTF8 编码。

最佳答案

如果输入为空,

json_decode() 将返回 NULL。尝试此操作以确保您的 $arr_data 是一个数组...

$arr_data = json_decode($jsondata, true);
if ($arr_data === null) {
    $arr_data = [];
}

关于PHP 将 null 写入 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46417566/

相关文章:

php - 内联插入文本框

php - 具有多个 like 的 PDO 查询

php 返回无效的 json

javascript - 使用 javascript 处理 JSON 数据和 JSON 对象数组

java - Extjs文件上传响应和Java spring

php - 我能否从 Linux 服务器上的 PHP 应用程序可靠地创建 Excel 文档?

php - 当对同一页面进行表单操作时,保留页面位置?

php - Ajax 调用后更新 PHP 变量

ios - 获取没有括号的值

java - jsonp.java.net : how to build with maven