您好,我有以下帖子输入数据
我正在尝试更新本地化文件,这是json格式它有524行,输出是success
{
"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。Count $_POST['lang_key']是500行,在第500行之后缺少了24行
我怎么能把它写回文件相同的格式?我有以下代码,因为我可以做
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));
需要使用lang_key
参数作为关联数组中的键,lang_value
作为对应的值。
foreach ($_POST['lang_key'] as $index => $key) {
$data[$key] = $_POST['lang_value'][$index];
}
我不知道为什么你只有500个输入。
经过一番搜索,我得到了解决方案。问题来自max_input_vars in php.ini
:它的默认值是1000
。所以当我尝试post 500 -> lang_key and 500 -> lang_value
时,它会变大。
所以解决方案是change php.ini -> max_input_vars
更大的价值,没有更多的问题。