json输入并写回文件php

时间:2016-06-24 20:02:15

标签: php json

您好我已经暂停了后期输入数据

我正在尝试更新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>
  1. 问题在于发帖。计数$ _POST ['lang_key']是500行,524.24行没有遇到500行。

  2. 如何以同样的格式将其写回文件?我尽可能地执行代码

  3. 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));
    

2 个答案:

答案 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更大的价值而不再是问题。