我要创建一个包含名称列表的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
不适合使用?
答案 0 :(得分:7)
如果文件已存在,默认情况下file_put_contents()
将覆盖现有文件。
要防止覆盖当前文件,请将FILE_APPEND
标志作为函数的第三个参数传递。
例如:
if (file_exists($file_name)) {
file_put_contents($file_name, $some_value, FILE_APPEND);
} else {
//...
}