我有以下config.json文件。
{
"version": "9",
"sysctl": {
"item": [
{
"tunable": "net.link.bridge.pfil_bridge",
"value": "1",
"descr": "Packet filter on the bridge interface"
},
{
"tunable": "dev.netmap.generic_ringsize",
"value": "4096",
"descr": ""
},
{
"tunable": "net.link.bridge.pfil_member",
"value": "1",
"descr": ""
},
{
"tunable": "net.link.bridge.pfil_bridge",
"value": "0",
"descr": ""
}
]
}
}
如果使用下面的PHP代码在其中某些设置不正确,我会更改它。
$filename='config.json';
$data=file_get_contents($filename);
$data = json_decode($data,true);
$generic_ringsize_found = 0;
$pfil_bridge_found = 0;
$pfil_member_found = 0;
foreach ($data['sysctl']['item'] as $key => $value) {
if ($value['tunable'] == 'dev.netmap.generic_ringsize') {
if ($value['value'] == '4096') {
$generic_ringsize_found = 1;
}
else{
unset($data['sysctl']['item'][$key]);
}
}
if ($value['tunable'] == 'net.link.bridge.pfil_bridge') {
if ($value['value'] == '0') {
$pfil_bridge_found = 1;
}
else{
unset($data['sysctl']['item'][$key]);
}
}
if ($value['tunable'] == 'net.link.bridge.pfil_member') {
if ($value['value'] == '1') {
$pfil_member_found = 1;
}
else{
unset($data['sysctl']['item'][$key]);
}
}
}
if ($generic_ringsize_found == 0) {
array_push($data['sysctl']['item'],array('tunable'=>'dev.netmap.generic_ringsize','value'=>'4096','descr'=>''));
}
if ($pfil_bridge_found == 0) {
array_push($data['sysctl']['item'],array('tunable'=>'net.link.bridge.pfil_bridge','value'=>'0','descr'=>''));
}
if ($pfil_member_found == 0) {
array_push($data['sysctl']['item'],array('tunable'=>'net.link.bridge.pfil_member','value'=>'1','descr'=>''));
}
$data = json_encode($data, JSON_PRETTY_PRINT);
$fp = fopen($filename, 'w');
fwrite($fp, $data);
fclose($fp);
然后它将密钥添加到项目并设置config.json文件。
{
"version": "9",
"sysctl": {
"item": {
"1": {
"tunable": "dev.netmap.generic_ringsize",
"value": "4096",
"descr": ""
},
"2": {
"tunable": "net.link.bridge.pfil_member",
"value": "1",
"descr": ""
},
"3": {
"tunable": "net.link.bridge.pfil_bridge",
"value": "0",
"descr": ""
}
}
}
}
但是我想拥有config.json文件
{
"version": "9",
"sysctl": {
"item": [
{
"tunable": "dev.netmap.generic_ringsize",
"value": "4096",
"descr": ""
},
{
"tunable": "net.link.bridge.pfil_member",
"value": "1",
"descr": ""
},
{
"tunable": "net.link.bridge.pfil_bridge",
"value": "0",
"descr": ""
}
]
}
}
我尝试了很多事情(JSON_FORCE_OBJECT,作为对象解码),但没有成功。帮我。预先感谢。