PHP写入文件而不截断

时间:2011-12-12 09:44:09

标签: php

我正在创建一个flatfile数据库,我正在尝试解决同时进行多次编辑的问题。我知道我需要截断文件以进行编辑和删除行,但是为了添加行,这不是必需的。

因此,如果我使用fopen($file, 'a')写入文件,并且多个人在哪里打开文件并写入文件,那么他们是否都可以同时写入文件?

不截断文件,人们不应该互相覆盖吗?

1 个答案:

答案 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