php - 如何使用 PHP 将来自不同 html 页面的数据连续读取到 JSON 文件中的一个大括号中?
问题描述
我设法JSON
使用PHP
. 我是新来PHP
的JSON
。我制作了一些 html 表单页面,我希望将登录的同一个人的数据保存在文件中的相同大括号中JSON
。此外,我没有“父”和“子”类型的JSON
文件,因为成员 ID 作为父,而姓名、年龄、性别等作为子。
例如,这是我在我的JSON
文件(即member.json
)中来自同一个人的两页 html 表单(即注册和选择票务页面)中的内容:
{
"name": "iron man",
"age": "54",
"gender": "male",
"email": "i@r.m",
"username": "ironman",
"Password": "ironman",
"submit": "Submit"
}{
"Journey_From": "Segambut",
"Journey_To": "Kepong",
"date": "2018-09-12",
"time": "15:43",
"Quantity": "3",
"submit": "Proceed"
}
我不知道如何将来自同一个人的不同 html 形式的两个输入放入一个 {}
我希望它是这样的:
{
"name": "iron man",
"age": "54",
"gender": "male",
"email": "i@r.m",
"username": "ironman",
"Password": "ironman",
"submit": "Submit"
"Journey_From": "Segambut",
"Journey_To": "Kepong",
"date": "2018-09-12",
"time": "15:43",
"Quantity": "3",
"submit": "Proceed"
}
我在两个 html 页面中都使用此代码将页面的输入发送到member.json
文件。
<?php
if(isset($_POST['submit'])) {
$file = "member.json";
$json_string = json_encode($_POST, JSON_PRETTY_PRINT);
file_put_contents($file, $json_string, FILE_APPEND);
}
?>
使用“死”代码后:
array(7) { ["name"]=> string(4) "haha" ["age"]=> string(2) "34" ["gender"]=> string(4) "male" ["email"]=> string(5) "d@w.f" ["username"]=> string(4) "haha" ["Password"]=> string(4) "haha" ["submit"]=> string(6) "Submit" }
解决方案
你可以使用arary_merge()
函数来完成它。json
在将任何内容放在那里之前检查文件。如果那里有任何可用内容,您可以json_data
将它们作为数组获取并将它们与当前内容合并。然后将新合并的数组推送到 json 文件中。您可以查看我的演示代码,了解我在说什么。
追加.php
<?php
function append($file, $new_json) {
$file_content = file_get_contents($file);
$previous_json = json_decode($file_content, true);
$previous_json == null ? $previous_json = [] : $previous_json = $previous_json;
$new_data = array_merge($previous_json, $new_json);
$json_string = json_encode($new_data, JSON_PRETTY_PRINT);
file_put_contents($file, $json_string);
}
然后在您插入数据的任何页面中,您只需像这样require
的文件append.php
<?php
include_once 'append.php';
if(isset($_POST['submit'])) {
$file = "member.json";
$newData = $_POST;
append($file, $newData);
}
?>
注意:您可以使用submit1
andsubmit2
来获取两个提交值。请检查此以了解有关array_merge
http://php.net/manual/en/function.array-merge.php的更多信息
推荐阅读
- javascript - jquery .one() 计算会检查每个事件吗?
- excel - 用特定数字替换文本框输入
- python - 如何绘制一维误差条形图?- Python
- visual-studio - Libjna 构建 - 链接:致命错误 LNK1104:无法打开文件 'LIBCMT.lib'
- c++ - 堆栈 std::vectors 以生成矩阵,类似于 numpy.vstack
- gradle - 具有自定义组 ID 的 Gradle 插件
- wordpress - 为什么我在 WordPress REST API 中从非 www 到 www 出现 cors 错误?
- hyperledger-fabric - 运行 Fabcar 示例返回错误:未能认可链代码安装
- javascript - 如何在纯 javascript 中打开 .csv(或任何扩展名)文件
- deep-learning - YOLO 会在全连接层之前重新缩放锚点吗?没有 ROI pooling 的解决方案是什么?