ファイルに出力・ファイルロック

PHPでファイルに出力をするには、「fwrite」関数を使用します。
また、Webでは多重で実行される事が多く発生するので「flock」関数を使用して
ファイル書き込み中は多重書き込みされないようにロックをかけます。

fwrite
引数 fwrite( ファイルハンドル ,出力データ , [ サイズ ] )
戻り値 ファイル書き込み失敗時にFALSE
flock
引数 flock( ファイルハンドル ,ロックモード , [ フラグ ] )
戻り値 ロック成功時にTRUE、失敗時にFALSE
指定可能
ロックモード
[LOCK_SH]
他のプロセスは、参照は出来るが変更が出来ない。
[LOCK_EX]
他のプロセスは変更、参照が出来ない。
[LOCK_UN]
ロック解除。
[LOCK_NB]
ロック中にはflock()関数によるブロックを回避する
●実際に使用した例

使用例
以下の例では、「テスト書き込み」の文字を「data.csv」に出力しています。

<?php
$body = "テスト書き込み";  //出力内容
$filename = "/data.csv";  //ファイル名

$fh = fopen($filename,"w");

if (flock($fh, LOCK_EX)){ //ファイルロック処理(多重書き込みによる、ファイル破損回避)
  
   if(fwrite($fh,  $body) === FALSE){
      print("ファイル書き込みに失敗しました。");
   }else{
      print("ファイル書き込みに成功しました。");
   }

    flock($fh, LOCK_UN);
}else{
        print("ファイルロックに失敗しました。");
}

fclose($fh);

?>