flock を使います。
ファイルロックを行えば、ファイルが消えることは基本ありません。
<?php
$filename ="data.txt";
$fp = @fopen($filename, "r+");
flock($fp, 2);
fputs($fp, "data");
flock($fp, 3);
fclose($fp);
?>
このように行います。
ここで注意点ですが、
fopen($filename,"w"); のようにファイルを開くと、ロックをしたとしてもデータが飛ぶ可能性が高いです。
というのは "w" モードで書き込みを行おうとすると、最初にファイルサイズを0バイトにするため、flock でファイルロックを行っても、データが飛んでしまいます。
flock する場合は r+ の読み書きモードで開きましょう。
スポンサードリンク
PHPサンプル集