我看过类似的帖子,但我似乎无法弄清楚。我有一个小型 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/