読者です 読者をやめる 読者になる 読者になる

ファイル書き込み時はrewindを忘れないこと

<?php
$fp = fopen($file_path, 'rb+');                      
                                                     
$cnt = 0;                                            
if ($fp !== false && flock($fp, LOCK_EX)) {          
    $cnt = trim(fgets($fp));                         
                                                     
    ftruncate($fp, 0);                               
    // rewindを忘れないこと
    rewind($fp);                                     
    fwrite($fp, empty($cnt) ? 1 : ++$cnt);                             
                                                     
    flock($fp, LOCK_UN);                             
    fclose($fp);
}

単純にファイルの値をカウントアップするプログラム。rewindが抜けていたため最初に余計な制御文字が入ってしまっていた。今後注意すること。