这里的第一次海报有一些可能没那么复杂的问题。首先,我对PHP的经验非常少,所以如果我遗漏了一些明显的东西,或者我要求进一步澄清,我会道歉。到目前为止,一切都是客户端的HTML / JavaScript。
我希望将注册系统纳入我的应用程序。它适用于物理治疗师程序,其中用户详细信息存储在JSON文件中。 (我知道有更好的选择)。
JSON内容目前采用以下格式:
{"users":[
{
"userid": "0",
"password":"template",
"physio": "test@test.com",
"firstName":"template",
"lastName":"template",
"exerciseregime": {
"exercisenumber":"5",
"exercises":["2","1", "3", "5", "4"]
}
},
{
"userid": "1",
"password":"user",
"physio": "UserPhysio@hotmail.co.uk",
"firstName":"User",
"lastName":"Physio",
"exerciseregime": {
"exercisenumber":"1",
"exercises":["2"]
}
},
等等。我要做的是使用从表单中获取的详细信息,并以这种格式将它们添加到现有用户数组中。
我目前使用的代码是
<?php
$file = "userjson.json";
$FirstName = $_POST["FirstName"];
$Surname = $_POST["Surname"];
$Password = $_POST["Password"];
$Email = $_POST["email"];
$UserID = $_POST["UserID2"];
$json = json_decode(file_get_contents($file), true);
$json["firstName"] = $FirstName;
$json["lastName"] = $lastName;
$json["password"] = $Password;
$json["physio"] = $Email;
$json["UserID"] = $UserID;
file_put_contents($file, json_encode($json));
?>
我used a previous answer在网站上找到了这个。详细信息将保存到JSON文件中,但格式不正确。而不是以新用户身份添加现有数组,而是在数组之后而不是在其中添加新对象。我将如何解决此问题并创建一个新的用户&#34;用户数组内?
另外,第二个问题但不重要:我将如何在这个新对象内部编写数组?我试图添加&#34; Exerciseregime&#34;数组到对象。
我非常感谢你的帮助,我很感谢你的考虑。
答案 0 :(得分:0)
编辑我的第一个代码不正确。我忘了指定ID并定位“users”数组。
试试这个:
$json = json_decode(file_get_contents($file), true);
$nextid = sizeof($json['users']);
$json['users'][$nextid]['firstName'] = $FirstName;
$json['users'][$nextid]['lastName'] = $Surname;
$json['users'][$nextid]['password'] = $Password;
$json['users'][$nextid]['physio'] = $Email;
$json['users'][$nextid]['UserID'] = $UserID;
file_put_contents($file, json_encode($json));
基本上每个用户在该JSON数组中都有一个ID密钥。您还需要为新用户提供密钥。
此外,您在底部有$lastName
,在顶部有$Surname
。也许想解决这个问题。我在底部添加$Surname
以匹配顶部。
回答您的第二个问题
你基本上只会这样做:
$json['users'][$nextid]['exerciseregime']['exercisenumber'] = 1;
$json['users'][$nextid]['exerciseregime']['exercises'] = 2;