$ _POST使用相同的密钥?

时间:2013-02-27 19:47:05

标签: php html post input key

我有一个POST表单,比提交时使用key和value来替换一组.ini文件中的行。

$reading = fopen('Original/file.ini', 'r');
$writing = fopen('file.ini', 'w');

while (!feof($reading)) {
    $line = fgets($reading);
    foreach ( $_POST as $key => $value )
    {
        if (stristr($line, $key.)) {
            $line = "   ".$key." = ".$value.";
";
        }
    }
    fputs($writing, $line);
}
fclose($reading); fclose($writing);

现在这个工作正常。但是,现在我需要编辑几个文件,其中许多文件包含相同的密钥。当然,文件名和路径所说的文件不一样,所以我想知道是否有任何方法可以对文本输入进行分组,所以我可以继续使用我的PHP解决方案吗?

例如,假设我同时拥有“product1.ini”和“product2.ini”,但两者都有“productPrice =”行。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我不确定我是否理解你,但是在你的html文件中你可以通过在名称属性的末尾添加“[]”字符来创建多个使用相同名称的文本框

<input type="text" name="edit[]" />
<input type="text" name="edit[]" />

然后在你的PHP代码中你可以把它作为一个数组

var_dump($_POST['edit']);
//result: array(...)

答案 1 :(得分:2)

我建议更改发布变量的方式,以便将每个ini文件的设置发布到以该ini文件命名的数组中。

所以你想要得到一个像这样的帖子数组:

array(
    'product1' => array(
        'key1'=>'value1',
        'key2'=>'value2'
    ),
    'product2' => array(
        'key1'=>'value1',
        'key2'=>'value2'
    ),
)

这样就可以根据需要发布任意数量的ini文件的设置。

如果您之前没有发布过嵌套数组,这很容易实现。 HTML输入字段名称只需使用方括号中的数组键进行格式化:

<input name='product1[key1]'>

希望有所帮助。