phpのlock処理について
phpのlock処理について
頻繁に書き込みされるファイルが飛ばないようにロックをしているのですが、
(アクセスログを保存)
phpのロック処理を調べていると
一方ではこれでよい、もう一方ではこれでは意味がないなど
色々な事が書かれており、いまいち理解できません。
wモードで開くと強固なロックは不可能なのでしょうか。
以下のようにしているのですが
ロックの意味はないでしょうか。
//ロック専用ファイルを開く
$flock=fopen("lock.txt","w");
//ロック専用ファイルをロック
flock($flock,LOCK_EX);
//書き込むファイルを連結して代入
$lineall = implode('', $lines);
//書き込み用のファイルを開く
$fp=fopen($log_file,"w");
fwrite($fp, $lineall);
fclose($fp);
//ロック用ファイルのロック解除
flock($flock, LOCK_UN);
fclose($flock);
プログラムが1から私が作成したものではなく、
ちょくちょく消えてしまうことからロック処理をしたいのと
処理の問題でwモードでの書き込みでないとどうもゴミが入ってしまうようですので
(r+でやってみましたが空行などのゴミが沢山入ってしまいました)
wモードでの強固なロック方法があればと思うのですが・・・。
お手数をおかけしますがご教授いただけますと幸いです。
お礼
ファイルを分けたり処理を工夫しながら対処してみようと思います。アドバイス、ありがとうございました。