$ _POST具有相同的密钥?
问题描述:
我有一个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 =”行。有什么建议么?
答
我建议你改变发布变量的方法,使每个ini文件中的设置被张贴在命名为ini文件的数组。
所以,你会想要得到一个职位阵列像这样:
array(
'product1' => array(
'key1'=>'value1',
'key2'=>'value2'
),
'product2' => array(
'key1'=>'value1',
'key2'=>'value2'
),
)
这将给予尽可能多的INI文件,只要你喜欢张贴设置的能力。
如果您以前没有发布过嵌套数组,那么这很容易实现。 HTML输入字段名称只需要用方括号中的数组键格式化即可:
<input name='product1[key1]'>
希望有所帮助。
答
我不知道如果我理解你的权利,但在你的HTML文件时,可以通过添加“[]”字符名称属性的末尾创建使用相同名称的多个文本框
<input type="text" name="edit[]" />
<input type="text" name="edit[]" />
然后在你的PHP代码,你可以把它作为一个数组
var_dump($_POST['edit']);
//result: array(...)
谢谢。我已经成功地使用了这个解决方案。 – 2013-03-01 15:44:55