Json输入并写回文件php


json input and write back to file php

您好,我有以下帖子输入数据

我正在尝试更新本地化文件,这是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>
  1. 问题是当得到post。Count $_POST['lang_key']是500行,在第500行之后缺少了24行

  2. 我怎么能把它写回文件相同的格式?我有以下代码,因为我可以做

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更大的价值,没有更多的问题。