1

我有一个 POST 表单,而不是在提交时使用键和值来替换一组 .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 =”行。有什么建议么?

4

2 回答 2

2

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

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

然后在您的 php 代码中,您可以将其作为数组获取

var_dump($_POST['edit']);
//result: array(...)
于 2013-02-27T19:50:51.460 回答
2

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

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

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

这将使您能够发布任意数量的 ini 文件的设置。

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

<input name='product1[key1]'>

希望有帮助。

于 2013-02-27T19:55:25.403 回答