1

送信時にキーと値の両方を使用して一連の.iniファイルの行を置き換えるよりもPO​​STフォームがあります。

$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 に答える