我正在创建一个flatfile数据库,我正在尝试解决同时进行多次编辑的问题。我知道我需要截断文件以进行编辑和删除行,但是为了添加行,这不是必需的。
因此,如果我使用fopen($file, 'a')
写入文件,并且多个人在哪里打开文件并写入文件,那么他们是否都可以同时写入文件?
不截断文件,人们不应该互相覆盖吗?
答案 0 :(得分:2)
最好为此使用某种助手。
PHP函数flock(文件锁定)
//Open the File Stream
$handle = fopen($file,"a");
//Lock File, error if unable to lock
if(flock($handle, LOCK_EX)) {
$data;
// do anything to fill variable $data
fwrite($handle, $data); //Write the $data into file
flock($handle, LOCK_UN); //Unlock File
} else {
echo "Could not Lock File!";
}
//Close Stream
fclose($handle);
PHP file write threading issues
Read and write to a file while keeping lock