Web サイトの広告 (バナー) をログに記録し、それらを .dat ファイルに保存する php スクリプトがあります。このファイル内には、ID、URL、その他の重要な情報が保存されます。私が抱えている問題は、常にページに 4 つの広告があるため、.dat ファイルが開いているときに php スクリプトが書き込もうとすると、.dat ファイルが破損することが多いことです。
この解決策を確認して試してみましたが、役に立ちませんでした:
 PHP 同時ファイル アクセス / flock() の問題
私が現在使用している関数は次のようになります。
function writeads(){
    global $bannerAdsPath, $ads, $bannerAds;
    $data = fopen($bannerAdsPath, 'w') or die();
    flock($data, 2) or die();
    fputs($data, @join("\n", $ads)."\n");
    while (list ($key, $val) = each ($bannerAds)) {
        if (($key != '') && ($val != '')) {
            fputs($data, $key.'='.$val."\n");
        }
    }
    flock($data, 3);
    fclose($data);
    reset($bannerAds);
}
私はこれについてしばらく頭を悩ませていたので、どんな助けもいただければ幸いです。ちょっとした情報ですが、クライアントは、ファイルの代わりにデータベースを使用するようにコードを書き直すことを望んでいなかったため、そのオプションはありません。
ありがとう!