您好我已经暂停了后期输入数据
我正在尝试更新json格式的localize文件 它有524行,输出成功
{
"loading_js_content":"Loading Javascript Content...",
"offical_site":"Official Site",
"Online_users":"Online Users",
......
.....
......
and go on
}
HTML
<form method="POST" action="" id="lang_file" class="FormBlock">
<table class="ranktable">
<tr class="head" >
<td colspan="2" id="boxTitle">Edit/Update <?php echo $LangName; ?> Values</td>
</tr>
<tr class="head">
<td>#</td>
<td>Key</td>
<td>Value</td>
</tr>
<?php
$i = 0;
foreach($LangData as $key => $value):
$i++;
$class = ($i%2==0) ? 'alt1' : 'alt2';
?>
<tr class="<?php echo $class; ?>">
<td><?php echo $i; ?></td>
<td style="text-align:left">
<input type="text" name="lang_key[]" class="formatted" value="<?php echo $key; ?>" style="width:150px;" />
</td>
<td style="text-align:left">
<input type="text" name="lang_val[]" class="formatted" value="<?php echo $value; ?>" style="width:380px;" />
</td>
</tr>
<?php endforeach; ?>
</table>
问题在于发帖。计数$ _POST ['lang_key']是500行,524.24行没有遇到500行。
如何以同样的格式将其写回文件?我尽可能地执行代码
foreach( $_POST['lang_key'] as $lang_key => $key)
{
$data[] = $key;
}
foreach( $_POST['lang_value'] as $lang_value => $val)
{
$data[] = $val;
}
file_put_contents(BASE_DIRECTORY.'test.json',json_encode($data,JSON_PRETTY_PRINT));
答案 0 :(得分:1)
您需要使用lang_key
参数作为关联数组中的键,并使用lang_value
作为相应的值。
foreach ($_POST['lang_key'] as $index => $key) {
$data[$key] = $_POST['lang_value'][$index];
}
我不知道为什么你只能获得500个输入。
答案 1 :(得分:1)
经过一番搜索,我得到了解决方案。问题来自max_input_vars in php.ini
:其默认值为1000
。因此,当我尝试post 500 -> lang_key and 500 -> lang_value
时,它会过大。
所以解决方案是change php.ini -> max_input_vars
更大的价值而不再是问题。