fopen関数、fwrite関数を使い、モードをwにしたとき、
ファイルポインタを毎回最上位にやって書き換えてくれるはずなのに、
書き変わらないという現象があった
(もちろんモードaのように追記もされていない)。
いまは作ったファイルを都度削除していますが、どうしてでしょう?
function writefile( $filename, $body ){
// ファイルをオープンします。
$fno = fopen($filename, ’w’);
// 文字列を書き出します。
fwrite( $fno, $body );
// ファイルをクローズします。
fclose($fno);
}
みんなの回答 2 件
エラーのログもでないんでしょうか?
書き込み権限がないとか?
書き変わらないパターンですが、例えばアクセスカウンタの場合、以下の流れが想定できます。
結果、Aのアクセスが無かったことになり、値が書き変わっていないように見えます。
他にはwだとfopenした際に一旦ファイルの中身を空にするので、それが原因の場合もあります。
あと、ファイルの書き込みなどはちゃんとflockなどで排他処理をするべきです。
関連するトピックス