1

名前のリストを含むファイルを作成しtxtます。これらの名前はフォームから取得されます。

私の論理は次のようになります。

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $name = $_POST['username'];
}


function add_name($name, $file_name = "names.txt") {
    if(file_exists($file_name)) {
        $name = $name;
        file_put_contents($file_name, $name);
} else { 
         $handle = fopen($file_name, 'w+');
         fwrite($handle, $name);
         fclose($handle);
    }
}

問題は、名前を書き込むことですが、別のレコードを設定すると、前のレコードが削除されますか? たぶんfile_put_contents、使用するのに適切な機能ではありませんか?

4

1 に答える 1

10

ファイルが既に存在する場合、既定でfile_put_contents()は、既存のファイルが上書きされます。

現在のファイルが上書きされないようにするには、FILE_APPENDフラグを関数の 3 番目の引数として渡します。

例えば:

if (file_exists($file_name)) {
    file_put_contents($file_name, $some_value, FILE_APPEND);
} else { 
    //...
}
于 2013-11-07T21:30:07.057 に答える