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标志作为函数的第三个参数传递。

例如:

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